LeetCode-Easy刷题(22)Binary Tree Level Order Traversal II

Posted 当以乐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode-Easy刷题(22)Binary Tree Level Order Traversal II相关的知识,希望对你有一定的参考价值。

Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root).

For example:
Given binary tree [3,9,20,null,null,15,7],

    3
   / \\
  9  20
    /  \\
   15   7

return its bottom-up level order traversal as:

[
  [15,7],
  [9,20],
  [3]
]

遍历给定的树,倒叙输出
//广度优先搜索
    public List<List<Integer>> levelOrderBottom(TreeNode root) 

        //结果
        ArrayList<List<Integer>> result = new ArrayList<List<Integer>>();

        if(root ==null)
            return result;
        

        int lastNum = 1;//上层节点数目
        int curNum = 0; //本层节点数目统计
        int level = 0;//深度

        LinkedList<TreeNode> queue = new LinkedList<TreeNode>();
        queue.add(root);

        while(queue.size()>0)

            TreeNode node = queue.pop();
            lastNum--;//上层节点数取出1
            if(result.size()<=level)
                result.add(new ArrayList<Integer>());
            

            result.get(level).add(node.val);

            if(node.left !=null)
                queue.add(node.left);
                curNum++;
            

            if(node.right !=null)
                queue.add(node.right);
                curNum++;
            

            if(lastNum == 0)//如果上层节点遍历完了,那么要继续遍历下一层
                lastNum = curNum;
                curNum = 0;
                level++;
            
        

        Collections.reverse(result);//倒叙输出
        return result;
    


开发者涨薪指南 48位大咖的思考法则、工作方式、逻辑体系

以上是关于LeetCode-Easy刷题(22)Binary Tree Level Order Traversal II的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode-Easy刷题(24) Balanced Binary Tree

LeetCode-Easy刷题(21) Maximum Depth of Binary Tree

LeetCode-Easy刷题(25) Minimum Depth of Binary Tree

LeetCode-Easy刷题(23) Convert Sorted Array to Binary Search Tree

LeetCode-Easy刷题(20) Symmetric Tree

LeetCode-Easy刷题(26) Path Sum