本文共 1285 字,大约阅读时间需要 4 分钟。
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]]
confused what "{1,#,2,3}"
means?
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public static ArrayList> levelOrder(TreeNode root) { // Note: The Solution object is instantiated only once and is reused by each test case. LinkedList > answer = new LinkedList >(); if (root != null) { LinkedList currentLevelNode = new LinkedList (); currentLevelNode.add(root); while (!currentLevelNode.isEmpty()) { ArrayList temp = new ArrayList (currentLevelNode.size()); LinkedList nextLevelNode = new LinkedList (); for (TreeNode node : currentLevelNode) { temp.add(node.val); if (node.left != null) { nextLevelNode.add(node.left); } if (node.right != null) { nextLevelNode.add(node.right); } } answer.add(temp); currentLevelNode = nextLevelNode; } } return new ArrayList >(answer); }}
转载地址:http://inuni.baihongyu.com/