Binary Tree Level Order Traversal: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 {3,9,20,#,#,15,7}
,
3 / 9 20 / 15 7
return its level order traversal as:
[ [3], [9,20], [15,7] ]
题意:二叉树的层次遍历。
思路:借助队列进行遍历。
代码:
public class Solution { public List<List<Integer>> levelOrder(TreeNode root) { if(root==null) return new ArrayList<List<Integer>>(); List<List<Integer>> result = new ArrayList<List<Integer>>(); Queue<TreeNode> queue = new LinkedList<TreeNode>(); int levCount = 1; int preLevCount = 1; queue.add(root); while(!queue.isEmpty()){ levCount = 0; List<Integer> temp = new ArrayList<Integer>(); for(int i=0;i<preLevCount;i++){ TreeNode tree = queue.poll(); temp.add(tree.val); if(tree.left!=null){ queue.add(tree.left); levCount++; } if(tree.right!=null){ queue.add(tree.right); levCount++; } } preLevCount = levCount; result.add(temp); } return result; } }