首页 > 代码库 > Binary Tree Level Order Traversal

Binary Tree Level Order Traversal

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]]
 1 /** 2  * Definition for binary tree 3  * public class TreeNode { 4  *     int val; 5  *     TreeNode left; 6  *     TreeNode right; 7  *     TreeNode(int x) { val = x; } 8  * } 9  */10 public class Solution {11     public List<List<Integer>> levelOrder(TreeNode root) {12         List<List<Integer>> container = new ArrayList<List<Integer>>();13         if(null == root)14             return container;15         //List<TreeNode> theSameLevel = new ArrayList<TreeNode>();//存放同一层节点16         Queue<TreeNode> theSameLevel = new LinkedList<TreeNode>();17         theSameLevel.add(root);18         while(!theSameLevel.isEmpty()){//theSameLevel不为空19             List<Integer> oneLevel = new ArrayList<Integer>();20             Queue<TreeNode> temp = new LinkedList<TreeNode>();//暂存同一层的结点21             while(!theSameLevel.isEmpty()){22                 TreeNode cur = theSameLevel.remove();23                 oneLevel.add(cur.val);24                 if(null != cur.left) 25                     temp.add(cur.left);26                 if(null != cur.right)27                     temp.add(cur.right);28             }29             theSameLevel = temp;30             container.add(oneLevel);31         }32         33         return container;34     }35 }

 

Binary Tree Level Order Traversal