首页 > 代码库 > [leetcode]Binary Tree Level Order Traversal
[leetcode]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]]
算法思路:
最最基本的BFS,不做解释。
代码如下:
1 public class Solution { 2 public List<List<Integer>> levelOrder(TreeNode root) { 3 List<List<Integer>> res = new ArrayList<List<Integer>>(); 4 if(root == null) return res; 5 Queue<TreeNode> q = new LinkedList<TreeNode>(); 6 Queue<TreeNode> copy = new LinkedList<TreeNode>(); 7 q.offer(root); 8 res.add(new ArrayList<Integer>(Arrays.asList(root.val))); 9 while(!q.isEmpty()){10 TreeNode node = q.poll();11 if(node.left != null) copy.offer(node.left);12 if(node.right != null) copy.offer(node.right);13 if(q.isEmpty() && !copy.isEmpty()){14 List<Integer> list = new ArrayList<Integer>();15 while(!copy.isEmpty()){16 q.offer(copy.peek());17 list.add(copy.poll().val);18 }19 res.add(list);20 }21 }22 return res;23 }24 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。