首页 > 其他 > 详细

107. 二叉树的层序遍历 II

时间:2021-01-11 14:35:20      阅读:21      评论:0      收藏:0      [点我收藏+]

107. 二叉树的层序遍历 II

//给定一个二叉树,返回其节点值自底向上的层序遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 
//
// 例如: 
//给定二叉树 [3,9,20,null,null,15,7], 
//
// 
//    3
//   / //  9  20
//    /  //   15   7
// 
//
// 返回其自底向上的层序遍历为: 
//
// 
//[
//  [15,7],
//  [9,20],
//  [3]
//]
// 
// Related Topics 树 广度优先搜索 
// ?? 384 ?? 0

BFS

class Solution {
    public List<List<Integer>> levelOrderBottom(TreeNode root) {
        //创建队列
        LinkedList<List<Integer>> list = new LinkedList<>();
        if (root == null) return list;
        Queue<TreeNode> queue = new LinkedList();
        queue.offer(root);
        //bfs
        while (!queue.isEmpty()) {
            int n = queue.size();
            List<Integer> level = new ArrayList<>();
            for (int i = 0; i < n; i++) {
                TreeNode node = queue.poll();
                level.add(node.val);
                if (node.left != null) {
                    queue.offer(node.left);
                }
                if (node.right != null) {
                    queue.offer(node.right);
                }
            }
            //添加到队列 头部
            list.addFirst(level);
        }
        return list;
    }
}

107. 二叉树的层序遍历 II

原文:https://www.cnblogs.com/nayou/p/14261678.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!