亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

897-遞增順序查找樹

AndroidTraveler / 1137人閱讀

摘要:前言的遞增順序查找樹,題目要求如下給定一個(gè)樹,按順序重新排列樹,使樹中最左邊的結(jié)點(diǎn)現(xiàn)在是樹的根,并且每個(gè)結(jié)點(diǎn)沒(méi)有左子結(jié)點(diǎn),只有一個(gè)右子結(jié)點(diǎn)。

前言

Weekly Contest 100的遞增順序查找樹,題目要求如下:

給定一個(gè)樹,按順序重新排列樹,使樹中最左邊的結(jié)點(diǎn)現(xiàn)在是樹的根,并且每個(gè)結(jié)點(diǎn)沒(méi)有左子結(jié)點(diǎn),只有一個(gè)右子結(jié)點(diǎn)。

示例 :

輸入:[5,3,6,2,4,null,8,1,null,null,null,7,9]

       5
      / 
    3    6
   /     
  2   4    8
 /        /  
1        7   9

輸出:[1,null,2,null,3,null,4,null,5,null,6,null,7,null,8,null,9]

 1
  
   2
    
     3
      
       4
        
         5
          
           6
            
             7
              
               8
                
                 9  
解題思路

這道題解題步驟如下:

找出樹的最左節(jié)點(diǎn):用中序遍歷的方式獲取到樹的最左節(jié)點(diǎn)的訪問(wèn)序列

根據(jù)這個(gè)訪問(wèn)序列生成一個(gè)只有右節(jié)點(diǎn)的樹即可

PS:我個(gè)人是把中序遍歷簡(jiǎn)單記做左中右

實(shí)現(xiàn)代碼
/**
  * 遞增順序查找樹
  *
  * @param root
  * @return
  */
 public TreeNode increasingBST(TreeNode root) {
     List list = inorderTraversal(root);
     TreeNode result = new TreeNode(list.get(0));
     TreeNode currentNode = result;
     for (int i = 1; i < list.size(); i++) {
         currentNode.right = new TreeNode(list.get(i));
         currentNode = currentNode.right;
     }
     return result;
 }
 
 /**
  * 中序遍歷
  * @param root
  * @return
  */
 private List inorderTraversal(TreeNode root) {
     List list=new ArrayList();
     if(root!=null){
         inorderTraversal(root,list);
     }
     return list;
 }

 /**
  * 中序遍歷時(shí)調(diào)用的遞歸方法
  * @param root
  * @return
  */
 private void inorderTraversal(TreeNode root,List list){
     if(root.left!=null){//遍歷左子樹
         inorderTraversal(root.left,list);
     }
     list.add(root.val);//記錄根節(jié)點(diǎn)
     if(root.right!=null){//遍歷右子樹
         inorderTraversal(root.right,list);
     }
 }

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/76967.html

相關(guān)文章

  • ?算法入門?《二叉 - 二叉搜索》簡(jiǎn)單05 —— LeetCode 897. 遞增順序搜索

    文章目錄 一、題目1、題目描述2、基礎(chǔ)框架3、原題鏈接 二、解題報(bào)告1、思路分析2、時(shí)間復(fù)雜度3、代碼詳解 三、本題小知識(shí)四、加群須知 一、題目 1、題目描述 ??給你一棵二叉搜索樹,請(qǐng)按 中序遍歷 將其重新排列為一棵遞增順序搜索樹,使樹中最左邊的節(jié)點(diǎn)成為樹的根節(jié)點(diǎn),并且每個(gè)節(jié)點(diǎn)沒(méi)有左子節(jié)點(diǎn),只有一個(gè)右子節(jié)點(diǎn)。??樣例輸入: [5,3,6,2,4,null,8,1,null,null,nu...

    Soarkey 評(píng)論0 收藏0
  • leetcode98. Validate Binary Search Tree

    摘要:題目要求檢驗(yàn)二叉查找樹是否符合規(guī)則。二叉查找樹是指當(dāng)前節(jié)點(diǎn)左子樹上的值均比其小,右子樹上的值均比起大。因此在這里我們采用棧的方式實(shí)現(xiàn)中序遍歷,通過(guò)研究中序遍歷是否遞增來(lái)判斷二叉查找樹是否符合規(guī)則。 題目要求 Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is...

    codercao 評(píng)論0 收藏0
  • leetcode98. Validate Binary Search Tree

    摘要:題目要求檢驗(yàn)二叉查找樹是否符合規(guī)則。二叉查找樹是指當(dāng)前節(jié)點(diǎn)左子樹上的值均比其小,右子樹上的值均比起大。因此在這里我們采用棧的方式實(shí)現(xiàn)中序遍歷,通過(guò)研究中序遍歷是否遞增來(lái)判斷二叉查找樹是否符合規(guī)則。 題目要求 Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is...

    AlphaWatch 評(píng)論0 收藏0
  • 查找算法——JS算法實(shí)現(xiàn)

    摘要:查找表查找表相關(guān)概念查找表是由同一類型的數(shù)據(jù)元素或記錄構(gòu)成的集合。由于集合中的數(shù)據(jù)元素之間存在著完全松散的關(guān)系,因此查找表是一種非常靈便的數(shù)據(jù)結(jié)構(gòu)。缺點(diǎn)平均查找長(zhǎng)度較大。索引順序表的查找若以索引順序表表示靜態(tài)查找表,則查找可以用分塊查找。 查找表 search table 查找表相關(guān)概念 查找表是由同一類型的數(shù)據(jù)元素(或記錄)構(gòu)成的集合。由于集合中的數(shù)據(jù)元素之間存在著完全松散的關(guān)系,因...

    sihai 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

AndroidTraveler

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<