LeetCode 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] ]
分层遍历二叉树,用队列模拟。
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public List<List<Integer>> levelOrder(TreeNode root) { List<List<Integer>> soluList=new ArrayList<List<Integer>>(); if (root==null) { return soluList; } LinkedList<TreeNode> queue=new LinkedList<>(); queue.push(root); List<Integer> currlist; int count=1; TreeNode node; int currlevel=0; while (!queue.isEmpty()) { currlist=new ArrayList<>(); currlevel=0; for (int i = 0; i < count; i++) { node=queue.pop(); currlist.add(node.val); if (node.left!=null) { ++currlevel; queue.add(node.left); } if (node.right!=null) { ++currlevel; queue.add(node.right); } } count=currlevel; soluList.add(currlist); } return soluList; } }