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;


以上是关于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