102. Binary Tree Level Order Traversal
来源:互联网 发布:skype for mac 编辑:程序博客网 时间:2024/05/21 20:29
原题:
点击打开链接
即实现给定二叉树的层次遍历。
思考过程&解题思路:
用队列解决这个问题不困难。第一次用java的队列Queue<TreeNode> queue = new LinearList<>();如果只是输出层次遍历的结果,先向队列里添加根节点,每个节点出队列时添加左右子节点,直至队列为空就可以了。这道题不一样在于不同层次要表现出来,不同层次放在不同数组里。我的解决方案是每一层声明一个队列,这层队列左右子节点放在新队列里表示下一层,递归调用此方法直至队列为空。
结果代码:
List<List<Integer>> ret = new ArrayList<>(); public List<List<Integer>> levelOrder(TreeNode root) { if (root == null) return ret; Queue<TreeNode> queue = new LinkedList<>(); queue.add(root); recursive(queue); return ret; } public void recursive(Queue<TreeNode> queue){//这里的queue存的是上层的节点 if (queue.isEmpty()) return;//说明结束了 Queue<TreeNode> newQueue = new LinkedList<>(); List<Integer> subRet = new ArrayList<>();//存储此层结果 while (!queue.isEmpty()){ TreeNode treeNode = queue.remove(); subRet.add(treeNode.val); TreeNode left = treeNode.left; TreeNode right = treeNode.right; if (left != null) newQueue.add(left); if (right != null) newQueue.add(right); } ret.add(subRet); recursive(newQueue); }
阅读全文
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
- c/c++中static、auto、extern
- android:ToolBar详解(手把手教程)
- 【bzoj3875】[Ahoi2014&Jsoi2014]骑士游戏
- window.open在不加载新页面的情况下进行打印
- [HAOI2016]食物链 (记忆化搜索)
- 102. Binary Tree Level Order Traversal
- python2 与python3共存问题
- java面试题
- 10Python中的时间和日期
- heteamo.com网址日志
- CS 300 Consecutive Digits Signs 构造
- 解析数组类型的json串
- 按月统计订单数量报表SQL语句(CASE 和DECODE的使用)
- Enterprise Architect : 去掉UML图页面右侧那一道竖线