题解 | #求二叉树的层序遍历#

求二叉树的层序遍历

http://www.nowcoder.com/practice/04a5560e43e24e9db4595865dc9c63a3

本文仅用于本人记录

看了下题解就离谱,居然可以这么简单就做出来层次遍历二叉树:

import java.util.*;

/*
 * public class TreeNode {
 *   int val = 0;
 *   TreeNode left = null;
 *   TreeNode right = null;
 * }
 */

public class Solution {
    /**
     * 
     * @param root TreeNode类 
     * @return int整型ArrayList<ArrayList<>>
     */
    ArrayList<ArrayList<Integer>> result = new ArrayList<>();
    public ArrayList<ArrayList<Integer>> levelOrder (TreeNode root) {
        // write code here
        if(root == null){
            return result;
        }
        level(root,0);
        return result;
    }
    void level(TreeNode root,int level){
        if(level == result.size()){
            result.add(new ArrayList<>());
        }
        ArrayList<Integer> temp = result.get(level);
        temp.add(root.val);
        if(root.left != null){
            level(root.left,level+1);
        }
        if(root.right != null){
            level(root.right,level+1);
        }
    }
}

还看了下普通的解法,就是借助队列,我自己没写过,大概意思是处理好当前结点后,把当前节点的左孩子、右孩子放入队列中,然后结束一轮循环继续下一轮。直到队列为空无法再继续下去就退出循环。

全部评论

相关推荐

Yushuu:你的确很厉害,但是有一个小问题:谁问你了?我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了😆
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务