LeetCode刷题笔录 Binary Tree Level Order Traversal
2014-04-22 09:21
441 查看
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).
For example:
Given binary tree
return its level order traversal as:
就是个层序遍历,没啥难的。想起CTCI里有一个差不多的题,用了一个BFS的解法,不是用Queue,就实现了一下。这里注意LeetCode要求的返回值是ArrayList<Integer>,不是ArrayList<TreeNode>.
具体做法就是两个ArrayList,current 和 parent。parent是上一层的所有node,对于parent的每一个node,将其左儿子和右儿子都放到current里。每层创建一个新current。
For example:
Given binary tree
{3,9,20,#,#,15,7},
3 / \ 9 20 / \ 15 7
return its level order traversal as:
[ [3], [9,20], [15,7] ]
就是个层序遍历,没啥难的。想起CTCI里有一个差不多的题,用了一个BFS的解法,不是用Queue,就实现了一下。这里注意LeetCode要求的返回值是ArrayList<Integer>,不是ArrayList<TreeNode>.
具体做法就是两个ArrayList,current 和 parent。parent是上一层的所有node,对于parent的每一个node,将其左儿子和右儿子都放到current里。每层创建一个新current。
public class Solution { public ArrayList<ArrayList<Integer>> levelOrder(TreeNode root) { ArrayList<ArrayList<TreeNode>> result = new ArrayList<ArrayList<TreeNode>>(); //the above code generates an array of arrays of TreeNodes, while the problems ask for Integers. ArrayList<ArrayList<Integer>> trueResult = new ArrayList<ArrayList<Integer>>(); if(root == null) return trueResult; ArrayList<TreeNode> current = new ArrayList<TreeNode>(); current.add(root); while(current.size() > 0){ //add the previous level into the final result result.add(current); ArrayList<TreeNode> parent = current; current = new ArrayList<TreeNode>(); for(TreeNode node: parent){ if(node.left != null) current.add(node.left); if(node.right != null) current.add(node.right); } } for(ArrayList<TreeNode> nodeArr : result){ ArrayList<Integer> intArr = new ArrayList<Integer>(); for(TreeNode node : nodeArr){ intArr.add(node.val); } trueResult.add(intArr); } return trueResult; }
相关文章推荐
- LeetCode刷题笔录 Binary Tree Zigzag Level Order Traversal
- LeetCode刷题笔录Binary Tree Level Order Traversal II
- leetcode之Binary Tree Level Order Traversal
- LeetCode刷题笔录Construct Binary Tree from Preorder and Inorder Traversal
- 【leetcode】Binary Tree Level Order Traversal
- LeetCode刷题笔录 Binary Tree Preorder Traversal
- 103. Binary Tree Zigzag Level Order Traversal LeetCode
- 【LeetCode】Binary Tree Level Order Traversal II
- Binary Tree Level Order Traversal -- LeetCode
- LeetCode | Binary Tree Level Order Traversal II
- [LeetCode] Binary Tree Level Order Traversal
- LeetCode: Binary Tree Level Order Traversal
- Leetcode Binary Tree Zigzag Level Order Traversal
- leetcode Binary Tree Zigzag Level Order Traversal C++
- LeetCode—Binary Tree Zigzag Level Order Traversal 二叉树的Z扫描
- leetcode之Binary Tree Zigzag Level Order Traversal
- Binary Tree Level Order Traversal II - LeetCode
- [LeetCode] Binary Tree Level Order Traversal II
- [Leetcode 102 and 107, Easy] Binary Tree Level Order Traversal (I and II)
- Leetcode: Binary Tree Level Order Traversal