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

求二叉树的层序遍历

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);
        }
    }
}

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

全部评论

相关推荐

10-07 20:48
门头沟学院 Java
听说改名就会有offer:可能是实习上着班想到后面还要回学校给导师做牛马,看着身边都是21-25的年纪,突然emo了了
点赞 评论 收藏
分享
10-28 15:45
门头沟学院 C++
西南山:海康威视之前不是大规模裁员吗
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务