您的位置:首页 > 其它

Binary Tree Level Order Traversal II - LeetCode

2014-02-22 14:30 267 查看
随笔自用

http://oj.leetcode.com/problems/binary-tree-level-order-traversal-ii/

ArrayList非常神奇的特性,如果指定一位插入元素,这位已经有元素了,那么仍然会插入新元素,后面的元素一次往后挪动一位。

public class Solution {
public ArrayList<ArrayList<Integer>> levelOrderBottom(TreeNode root) {
ArrayList<ArrayList<Integer>> result = new ArrayList<ArrayList<Integer>>();

if (root == null) {
return result;
}

Queue<TreeNode> queue = new LinkedList<TreeNode>();
queue.offer(root);
int currLevelNodeNum = 1;
int nextLevelNodeNum = 0;

while (currLevelNodeNum != 0) {
ArrayList<Integer> currLevelResult = new ArrayList<Integer>();
nextLevelNodeNum = 0;

while (currLevelNodeNum != 0) {
TreeNode node = queue.poll();
currLevelNodeNum--;

currLevelResult.add(node.val);
if (node.left != null) {
queue.offer(node.left);
nextLevelNodeNum++;
}
if (node.right != null) {
queue.offer(node.right);
nextLevelNodeNum++;
}

}

result.add(0, currLevelResult);
currLevelNodeNum = nextLevelNodeNum;
}

return result;
}
}



喜欢的解法

http://www.cnblogs.com/TenosDoIt/p/3440542.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode