LeetCode(32)-Binary Tree Level Order Traversal
来源:互联网 发布:淘宝c店代运营 编辑:程序博客网 时间:2024/06/11 10:44
题目:
LeetCode Premium SubscriptionProblems Pick OneMock ArticlesDiscussBookfengsehng 102. Binary Tree Level Order Traversal My Submissions QuestionEditorial SolutionTotal Accepted: 98313 Total Submissions: 302608 Difficulty: EasyGiven 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 7return its level order traversal as:[ [3], [9,20], [15,7]]
题意:
- 题意是把一颗二叉树,按照从上到下,,把每一排节点从左到右存进list,最后把所有list存进一个list
- 考虑用递归,设置两个Queue,first和second来存放TreeNode。first来存放当前最下层的一行,second用来存放下一行,first的元素的左右节点赋值给second,把second的元素给first,往下移动
- 考虑first是空的时候,停止,注意判断临时数组tmp是否为空,非空才能存进 -
代码:
/** * 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>> all = new ArrayList<List<Integer>>(); Queue<TreeNode> first = new LinkedList<TreeNode>(); Queue<TreeNode> second = new LinkedList<TreeNode>(); if(root == null){ return all; } List<Integer> tmp = new ArrayList<Integer>(); tmp.add(root.val); all.add(tmp); first.add(root); while(!first.isEmpty()){ TreeNode node = first.poll(); if(node.left != null){ second.add(node.left); } if(node.right != null){ second.add(node.right); } if(first.isEmpty()){ List<Integer> tmp1 = new ArrayList<Integer>(); while(!second.isEmpty()){ TreeNode n = second.poll(); first.add(n); tmp1.add(n.val); } if(tmp1.size() != 0){ all.add(tmp1); } second.clear(); } } return all; }}
1 0
- LeetCode(32)-Binary Tree Level Order Traversal
- LeetCode[Tree]: Binary Tree Level Order Traversal
- *(leetcode) Binary Tree Level Order Traversal (tree)
- [leetcode][tree] Binary Tree Level Order Traversal
- LeetCode: Binary Tree Level Order Traversal
- LeetCode: Binary Tree Zigzag Level Order Traversal
- LeetCode: Binary Tree Level Order Traversal II
- [LeetCode]Binary Tree Level Order Traversal
- [LeetCode]Binary Tree Level Order Traversal II
- [LeetCode]Binary Tree Zigzag Level Order Traversal
- LeetCode Binary Tree Level Order Traversal
- LeetCode Binary Tree Level Order Traversal II
- LeetCode Binary Tree Zigzag Level Order Traversal
- [Leetcode] Binary Tree Level Order Traversal
- [Leetcode] Binary Tree Level Order Traversal II
- [Leetcode] Binary Tree Zigzag Level Order Traversal
- Leetcode: Binary Tree Zigzag Level Order Traversal
- LeetCode Binary Tree Level Order Traversal
- BZOJ3237: [Ahoi2013]连通图
- Android Bluetooth 框架简读 <2>
- 网络:XML 解析
- STL源码剖析读书笔记之vector
- Java并发编程系列之二十五:线程池
- LeetCode(32)-Binary Tree Level Order Traversal
- python reduce函数
- 在涉及到一些参数修改的时候,一定要和医院确认------运维日志32
- DuiLib(8)——Menu菜单的实现方式
- 派生类求两点间的距离、矩形的周长和面积
- hdu 1847 Good Luck in CET-4 Everybody! 博弈
- vector迭代器失效的一种情形
- hibernate5(9)注解映射[1]多对一单向关联
- Android控件 webView