成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

leetcode102. Binary Tree Level Order Traversal

Coding01 / 1611人閱讀

摘要:題目要求對(duì)于一棵樹進(jìn)行序遍歷。水平遍歷即遍歷結(jié)束當(dāng)前行以后再遍歷下一行,并將每行的結(jié)果按行填入到數(shù)組中返回。利用水平遍歷的話,我們只需要知道當(dāng)前元素在樹中的高度就可以知道應(yīng)當(dāng)插入到那個(gè)數(shù)組中。

題目要求
Given a binary tree, return the level order traversal of its nodes" values. (ie, from left to right, level by level).

For example:
Given binary tree [3,9,20,null,null,15,7],
    3
   / 
  9  20
    /  
   15   7
return its level order traversal as:
[
  [3],
  [9,20],
  [15,7]
]

對(duì)于一棵樹進(jìn)行l(wèi)evel序遍歷。水平遍歷即遍歷結(jié)束當(dāng)前行以后再遍歷下一行,并將每行的結(jié)果按行填入到數(shù)組中返回。

遞歸

這道題還是很基礎(chǔ)的啦。利用水平遍歷的話,我們只需要知道當(dāng)前元素在樹中的高度就可以知道應(yīng)當(dāng)插入到那個(gè)數(shù)組中。

    public List> levelOrder(TreeNode root) {
        List> result = new ArrayList>();
        levelOrder(root, 0, result);
        return result;
    }
    
    public void levelOrder(TreeNode treeNode, int height, List> result){
        if(treeNode == null) return;
        if(height>result.size()-1){
            result.add(new ArrayList());
        }
        result.get(height).add(treeNode.val);
        levelOrder(treeNode.left, height+1, result);
        levelOrder(treeNode.right, height+1, result);
    }
使用隊(duì)列

其實(shí)在數(shù)據(jù)結(jié)構(gòu)的教材中為了說明棧和隊(duì)列的使用,分別舉的就是中序遍歷和水平遍歷的例子。在這里我們同樣可以使用隊(duì)列的先進(jìn)先出的機(jī)制將同一行的元素讀入后,再逐個(gè)讀出,并在同時(shí)插入下一行中的元素。

    public List> levelOrder2(TreeNode root){
        List> result = new ArrayList>();
        if(root==null)return result;
        Queue queue = new LinkedList();
        queue.offer(root);
        while(!queue.isEmpty()){
            int levNum = queue.size();
            List temp = new ArrayList();
            for(int i = 0 ; i


想要了解更多開發(fā)技術(shù),面試教程以及互聯(lián)網(wǎng)公司內(nèi)推,歡迎關(guān)注我的微信公眾號(hào)!將會(huì)不定期的發(fā)放福利哦~

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

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

相關(guān)文章

  • leetcode-102-Binary Tree Level Order Traversal

    102. 二叉樹的層次遍歷 題目描述 給定一個(gè)二叉樹,返回其按層次遍歷的節(jié)點(diǎn)值。 (即zhucengde,從左到右訪問)。 例如: 給定二叉樹: [3,9,20,null,null,15,7], 3 / 9 20 / 15 7 返回其層次遍歷結(jié)果為: [ [3], [9,20], [15,7] ] class Solution: def le...

    widuu 評(píng)論0 收藏0
  • [LeetCode] 429. N-ary Tree Level Order Traversal (

    429. N-ary Tree Level Order Traversal Given an n-ary tree, return the level order traversal of its nodes values. (ie, from left to right, level by level). For example, given a 3-ary tree:showImg(https...

    LiangJ 評(píng)論0 收藏0
  • [Leetcode-Tree]Binary Tree Level Order Traversal

    摘要:解題思路層次遍歷二叉樹,我們采用隊(duì)列,本題的注意點(diǎn)是需要分割出每一層的序列,所以在從隊(duì)列中取元素之前,我們要先記錄隊(duì)列的大小,以表示這一層中節(jié)點(diǎn)的個(gè)數(shù)。 Binary Tree Level Order TraversalGiven a binary tree, return the level order traversal of its nodes values. (ie, from...

    Half 評(píng)論0 收藏0
  • [Leetcode] Binary Tree Traversal 二叉樹遍歷

    摘要:棧迭代復(fù)雜度時(shí)間空間遞歸??臻g對(duì)于二叉樹思路用迭代法做深度優(yōu)先搜索的技巧就是使用一個(gè)顯式聲明的存儲(chǔ)遍歷到節(jié)點(diǎn),替代遞歸中的進(jìn)程棧,實(shí)際上空間復(fù)雜度還是一樣的。對(duì)于先序遍歷,我們出棧頂節(jié)點(diǎn),記錄它的值,然后將它的左右子節(jié)點(diǎn)入棧,以此類推。 Binary Tree Preorder Traversal Given a binary tree, return the preorder tr...

    RaoMeng 評(píng)論0 收藏0
  • [LintCode/LeetCode] Binary Tree Level Order Traver

    Problem Given a binary tree, return the level order traversal of its nodes values. (ie, from left to right, level by level). For example:Given binary tree {3,9,20,#,#,15,7}, 3 / 9 20 / ...

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

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

0條評(píng)論

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