隨筆 - 8, 文章 - 0, 評論 - 6, 引用 - 0
          數據加載中……

          二叉排序樹變為雙向鏈表

          把一個二叉排序樹(也許不叫這個)變為遞增的雙向鏈表,不能夠生成額外的結點.
          eg 6
                 / \
                4   8
               / \ / \
              3  5 7  9

          3=4=5=6=7=8=9

          我的解:

          class Node
          {
              
          public Node left;
              
          public Node right;
              
              
          private static Node getLinkListTail(Node head)
              
          {
                  Node result 
          = head;
                  
          if(result==nullreturn null;
                  
          while(result.right!=null)
                  
          {
                      result 
          = result.right;
                  }

                  
          return result;
              }

              
              
          public static Node flatten(Node root)
              
          {
                  
          if(root==nullreturn null;
                  
                  Node result 
          = root;
                  
                  
          // A leaf node
                  if(root.left==null&&root.right==nullreturn root;
                  
                  
          //divide-and-conquer
                  Node leftSubTreeLinkListHead = flatten(root.left);
                  Node rightSubTreeLinkListHead 
          = flatten(root.right);
                  
                  
          //merge
                  Node leftSubTreeLinkListTail = getLinkListTail(leftSubTreeLinkListHead);
                  root.left 
          = leftSubTreeLinkListTail;
                  root.right 
          = rightSubTreeLinkListHead;
                  
          if(leftSubTreeLinkListHead!=null
                  
          {
                      result 
          = leftSubTreeLinkListHead;
                      leftSubTreeLinkListTail.right 
          = root;
                  }

                  
          if(rightSubTreeLinkListHead!=null) rightSubTreeLinkListHead.left = root;
                  
                  
          return result;
              }

          }


          posted on 2007-07-18 20:37 Job Hu 閱讀(648) 評論(0)  編輯  收藏 所屬分類: 算法與數據結構

          主站蜘蛛池模板: 义马市| 海丰县| 盐池县| 南京市| 菏泽市| 竹北市| 民权县| 赤水市| 疏勒县| 海林市| 云阳县| 中卫市| 西安市| 阿合奇县| 闽侯县| 虹口区| 凤台县| 山西省| 建湖县| 阿合奇县| 邯郸市| 腾冲县| 阳山县| 泰宁县| 周宁县| 陕西省| 辽阳市| 班玛县| 福安市| 资源县| 卓资县| 吉水县| 青神县| 游戏| 荥阳市| 静宁县| 页游| 清水河县| 江阴市| 潞城市| 集安市|