102. Binary Tree Level Order Traversal
来源:互联网 发布:软件著作权变更登记 编辑:程序博客网 时间:2024/04/28 01:03
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]
]
BFS
广度遍历写法是用一个队列,依次将各行节点存进去,poll 出来时将 val 存到 list 时顺便添加其子节点到队列中。代码如下:
public class Solution { public List<List<Integer>> levelOrder(TreeNode root) { List<List<Integer>> list = new ArrayList<List<Integer>> (); if(root == null) return list; Queue<TreeNode> q = new LinkedList<TreeNode> (); q.add(root); while(!q.isEmpty()) { int size = q.size(); ArrayList<Integer> temp = new ArrayList<Integer> (); for(int i = 0; i < size; i++) { TreeNode poll = q.poll(); if(poll.left != null)q.add(poll.left); if(poll.right != null)q.add(poll.right); temp.add(poll.val); } list.add(temp); } return list; }}
DFS
深搜,创建一个函数,参数为所要返回的 list,节点和该节点所在的 level,当 list 没有该 level 的子 list 时,则创建。每次将 val 存到对应level 的子list。之后递归调用。代码如下:
public class Solution { public List<List<Integer>> levelOrder(TreeNode root) { List<List<Integer>> list = new ArrayList<List<Integer>> (); addList(list, root, 0); return list; } private void addList(List<List<Integer>> list, TreeNode node, int level) { if(node == null) return; if(list.size() == level) list.add(new ArrayList<Integer> ()); List<Integer> temp = list.get(level); temp.add(node.val); addList(list, node.left, level + 1); addList(list, node.right, level + 1); }}
0 0
- LeetCode 102. Binary Tree Level Order Traversal
- [LeetCode]102.Binary Tree Level Order Traversal
- [Leetcode] 102. Binary Tree Level Order Traversal
- LeetCode --- 102. Binary Tree Level Order Traversal
- [leetcode] 102.Binary Tree Level Order Traversal
- 102.Binary Tree Level Order Traversal
- 102. Binary Tree Level Order Traversal
- 【leetcode】102. Binary Tree Level Order Traversal
- 102.Binary Tree Level Order Traversal
- 102. Binary Tree Level Order Traversal
- 102. Binary Tree Level Order Traversal
- Leetcode 102. Binary Tree Level Order Traversal
- 102. Binary Tree Level Order Traversal
- 102. Binary Tree Level Order Traversal LeetCode
- 102. Binary Tree Level Order Traversal
- [leetcode] 102. Binary Tree Level Order Traversal
- 102. Binary Tree Level Order Traversal
- 102. Binary Tree Level Order Traversal
- PhpExcel中文帮助手册|PhpExcel使用方法
- Android-代码混淆
- 一致性Hash问题总结
- iOS开发笔记>> UIButton与UITableView的层级结构
- 差分约束详解
- 102. Binary Tree Level Order Traversal
- 游戏数据分析的艺术:数据分析师的能力三角形
- 2016多校联合训练赛 第五场1002 Cycle hdu5782
- 查找算法Java版
- 出栈序列判定
- CodeForces 301A Yaroslav and Sequence(数字变号的最大和)
- 数据库索引的原理
- Python发送邮件问题
- priority_queue<int,vector<int>,greater<int>>优先队列 按照由小到大顺序