leetcode(25).102. Binary Tree Level Order Traversal
来源:互联网 发布:oracle sql优化书籍 编辑:程序博客网 时间:2024/05/19 21:43
题意:给定二叉树,按层次遍历的顺序返回其值
初步分析:
用队列广度优先搜索。
其实广搜是比深搜(递归)好理解的,因为递归抽象。我们用队列来模拟广搜。队列就是先进队,先处理。我们按照从上到下,从左到右进队,取出来(即处理)的顺序任然是这样。我们只要队列不为空的时候,先处理,后放入,但是!有可能这一层的结点还没有取出来完,新一层的结点就已经进来了,因为一次取出处理一个,但是对应的却放入队列两个(如果左右都有的话),所以可能队列里有多层的,虽然他们仍然会按照顺序处理完,但是!这个题的关键在于,要区分每一层,所以,我们要对每一层循环处理!
代码:
/** * 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>> lists = new ArrayList<>(); if(root == null) return lists; Queue<TreeNode> queue = new LinkedList(); TreeNode node = root; queue.add(node); while(!queue.isEmpty()) { List<Integer> list = new ArrayList<>(); int layer = queue.size(); //记录当前层的结点个数 while(layer != 0) //把当前层的结点取出来处理完(不是整个队列处理完),处理完后队列里的结点恰好是下一层所有的结点。 { node = queue.poll(); list.add(node.val); if(node.left != null) queue.add(node.left); if(node.right != null) queue.add(node.right); layer--; } lists.add(list); } return lists; }}
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
- 【leetcode】102. Binary Tree Level Order Traversal
- Leetcode 102. Binary Tree Level Order Traversal
- 102. Binary Tree Level Order Traversal LeetCode
- [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
- 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
- PHP PDO MySql 用户删除userdelete.php
- 21 leetcode - Valid Parentheses
- adb shell命令整理之am
- 22 leetcode - Merge Two Sorted Lists
- 十字路口
- leetcode(25).102. Binary Tree Level Order Traversal
- 深入JVM锁机制之一:synchronized
- adb shell命令整理之input
- python——运算符
- mysql-replacation 应用场景
- SelecT下拉框选中和取值的方法
- 深入JVM锁机制之二:Lock
- unity3d ui学习---canvas和basic layout
- C语言共用体