【LeetCode-面试算法经典-Java实现】【102-Binary Tree Level Order Traversal(二叉树层序遍历)】
来源:互联网 发布:出售数据资源 编辑:程序博客网 时间:2024/06/05 01:11
【102-Binary Tree Level Order Traversal(二叉树层序遍历)】
【LeetCode-面试算法经典-Java实现】【所有题目目录索引】
原题
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]]
题目大意
给定一个二叉树,输出它的每一层的结点。
解题思路
使用两队列,一个保存当前处理的层,一个保存下一次要处理的层。只到每一层都处理完。
代码实现
树结点类
public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; }}
算法实现类
import java.util.ArrayList;import java.util.Deque;import java.util.LinkedList;import java.util.List;public class Solution { public List<List<Integer>> levelOrder(TreeNode root) { List<List<Integer>> result = new ArrayList<>(); if (root == null) { return result; } Deque<TreeNode> cur = new LinkedList<>(); Deque<TreeNode> sub = new LinkedList<>(); Deque<TreeNode> exc; TreeNode node; cur.addLast(root); while (!cur.isEmpty()) { List<Integer> layout = new LinkedList<>(); while (!cur.isEmpty()) { node = cur.removeFirst(); layout.add(node.val); if (node.left != null) { sub.addLast(node.left); } if(node.right != null) { sub.addLast(node.right); } } exc = cur; cur = sub; sub = exc; result.add(layout); } return result; }}
评测结果
点击图片,鼠标不释放,拖动一段位置,释放后在新的窗口中查看完整图片。
特别说明
欢迎转载,转载请注明出处【http://blog.csdn.net/derrantcm/article/details/47354349】
2 1
- 【LeetCode-面试算法经典-Java实现】【102-Binary Tree Level Order Traversal(二叉树层序遍历)】
- 【LeetCode-面试算法经典-Java实现】【107-Binary Tree Level Order Traversal II(二叉树层序遍历II)】
- 【LeetCode-面试算法经典-Java实现】【103-Binary Tree Zigzag Level Order Traversal(二叉树分层Z字形遍历)】
- LeetCode | Binary Tree Level Order Traversal(二叉树层序遍历)
- 【LeetCode-面试算法经典-Java实现】【094-Binary Tree Inorder Traversal(二叉树中序遍历)】
- 【LeetCode】Binary Tree Level Order Traversal--(二叉树层序遍历)
- leetcode-Binary Tree Level Order Traversal 二叉树层序遍历
- leetcode:Binary Tree Level Order Traversal 二叉树层序遍历
- LeetCode 102 Binary Tree Level Order Traversal(二叉树层序遍历)
- 【LeetCode-面试算法经典-Java实现】【144-Binary Tree Preorder Traversal(二叉树非递归前序遍历)】
- 【LeetCode-面试算法经典-Java实现】【145-Binary Tree Postorder Traversal(二叉树非递归后序遍历)】
- Binary Tree Level Order Traversal(二叉树层序遍历)
- LeetCode | Binary Tree Level Order Traversal II(二叉树层序遍历II)
- LeetCode 103 Binary Tree Zigzag Level Order Traversal(二叉树层序遍历)
- LeetCode 102 Binary Tree Level Order Traversal(二叉树的层级顺序遍历)(*)
- LeetCode 102 Binary Tree Level Order Traversal(二叉树的层次遍历)
- Binary Tree Level Order Traversal 分层遍历二叉树@LeetCode
- Leetcode Binary Tree Level Order Traversal 二叉树分层遍历
- HDU 4362 Dragon Ball(维护最小值DP优化)
- 如何用FtpWebRequest 传送巨大文件
- iOS9公测版下载安装详细图文教程
- Android持久化js的localstorage
- 【LeetCode-面试算法经典-Java实现】【103-Binary Tree Zigzag Level Order Traversal(二叉树分层Z字形遍历)】
- 【LeetCode-面试算法经典-Java实现】【102-Binary Tree Level Order Traversal(二叉树层序遍历)】
- C语言的条件运算符
- 【LeetCode-面试算法经典-Java实现】【104-Maximum Depth of Binary Tree(二叉树的最大深度)】
- 对配置性编程的一点看法
- JAVA常用日期比较操作说明
- 笛卡尔积算法的Java实现
- springmvc的执行流程详解
- Android权限大全代码
- 第六天学习笔记