102. 107.Binary Tree Level Order Traversal
来源:互联网 发布:chaotice mac 编辑:程序博客网 时间:2024/05/21 04:25
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,null,null,15,7]
,
3 / \ 9 20 / \ 15 7
return its level order traversal as:
[ [3], [9,20], [15,7]]
分析: 使用层次遍历,递归时设置参数le,表明当前结点属于第几层,然后将其加入第几个list中既可;
<span style="font-size:14px;"><span style="font-size:14px;">/** * Definition for a binary tree node. * 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>> ans=new ArrayList<List<Integer>>(); if(root==null) return ans; level(root,1,ans); return ans; } public void level(TreeNode root,int le,List<List<Integer>> ans){ if(root==null) return; if(ans.size()<le){ List<Integer> list=new ArrayList<Integer>(); list.add(root.val); ans.add(list); } else ans.get(le-1).add(root.val); level(root.left,le+1,ans); level(root.right,le+1,ans); }}</span></span>
107. Binary Tree Level Order Traversal II
Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root).
For example:
Given binary tree [3,9,20,null,null,15,7]
,
3 / \ 9 20 / \ 15 7
return its bottom-up level order traversal as:
[ [15,7], [9,20], [3]]
思路: 在上题基础上, 设置一个全局变量max,用于记录当前搜索最深深度,然后属于level层的节点应该存放在max-level个list中。
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { int max=0; public List<List<Integer>> levelOrderBottom(TreeNode root) { List<List<Integer>> ans=new ArrayList<List<Integer>>(); levelHelp(ans,root,1); return ans; } public void levelHelp(List<List<Integer>> ans,TreeNode root,int level){ if(root==null) return; if(level>ans.size()){ List<Integer> list=new ArrayList<Integer>(); list.add(root.val); ans.add(0,list); max=ans.size(); }else{ ans.get(max-level).add(root.val); } levelHelp(ans,root.left,level+1); levelHelp(ans,root.right,level+1); }}
0 0
- 102. 107.Binary Tree Level Order Traversal
- 102. Binary Tree Level Order Traversal & 107. Binary Tree Level Order Traversal II & 103. Binary Tre
- 102. Binary Tree Level Order Traversal && 107. Binary Tree Level Order Traversal II
- [LeetCode]102. Binary Tree Level Order Traversal&107. Binary Tree Level Order Traversal II
- 107. Binary Tree Level Order Traversal II\102. Binary Tree Level Order Traversal\103. BT Zigzag
- 107.Binary Tree Level Order Traversal II
- 107. Binary Tree Level Order Traversal II
- 107. Binary Tree Level Order Traversal II
- 107. Binary Tree Level Order Traversal II
- 107. Binary Tree Level Order Traversal II
- 107. Binary Tree Level Order Traversal II
- 107. Binary Tree Level Order Traversal II
- 107. Binary Tree Level Order Traversal II
- 107. Binary Tree Level Order Traversal II
- 107. Binary Tree Level Order Traversal II
- 107. Binary Tree Level Order Traversal II
- 107. Binary Tree Level Order Traversal II
- 107. Binary Tree Level Order Traversal II
- 判断带头结点的双循环链表是否对称
- nodejs创建一个http服务
- 【转】Android 使用ViewPager实现类似gallery画廊的效果(画廊效果之ViewPager显示多个图片)
- 欢迎使用CSDN-markdown编辑器
- Timer(TimerTask )\AlarmManger\Handler\Thread.sleep\ScheduledThreadPoolExecutor
- 102. 107.Binary Tree Level Order Traversal
- ssm注解方式实现启动tomcat报错
- 动态计算listview的高度listItem.measure(0, 0)报空指针异常解决办法
- LeetCode OJ-48-Rotate Image
- 如何获取文件后缀名(无后缀名或后缀名被修改--非常规需求)
- iOS 线程延迟
- android-ScrollView嵌套ListView冲突解决办法
- Unity Awake函数的小问题
- 技术人员如何创业《一》- 产品及想法