102. Binary Tree Level Order Traversal Java Solutions
来源:互联网 发布:通过网络走群众路线 编辑:程序博客网 时间:2024/06/13 20:43
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]
]
问题:进行层次遍历,输出要求每层分层输出
思想:分层遍历是借助队列来实现的,当队不为空,出队并对该元素进行检查,如果有左右孩子将孩子入队,重复以上步骤
此题关键点在于如何划分队列中的元素属于不同层,所以借助int size=q.size(),以size表示该层有几个节点,那么就要循环遍历这些点 看它们是否有孩子
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]
]
问题:进行层次遍历,输出要求每层分层输出
思想:分层遍历是借助队列来实现的,当队不为空,出队并对该元素进行检查,如果有左右孩子将孩子入队,重复以上步骤
此题关键点在于如何划分队列中的元素属于不同层,所以借助int size=q.size(),以size表示该层有几个节点,那么就要循环遍历这些点 看它们是否有孩子
如果有将孩子入队,此时队列大小q.size会改变,但是size还是上一层的大小,直到size==0后,循环结束size=新的q.size
/** * 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) { // if(root==null) return new ArrayList<List<Integer>>(null); List<List<Integer>> result=new ArrayList<List<Integer>>(); if(root==null) return result; Queue<TreeNode> q=new LinkedList(); q.add(root); while(!q.isEmpty()){ List<Integer> levelList=new ArrayList(); int size=q.size();//******这里是保证每层节点为一组添加到levelList在添加到result中 for(int i=0;i<size;i++){ TreeNode node=q.poll(); levelList.add(node.val); if(node.left!=null) q.add(node.left);//将左右孩子添加到队列中,q.size会改变,但for循环中的size仍为上一层时的大小 if(node.right!=null) q.add(node.right); } result.add(levelList); } return result; }}
0 0
- 102. Binary Tree Level Order Traversal Java Solutions
- 102. Binary Tree Level Order Traversal(Java)
- [Leetcode] Binary Tree Level Order Traversal (Java)
- Binary Tree Zigzag Level Order Traversal Java
- Binary Tree Level Order Traversal LeetCode Java
- Binary Tree Level Order Traversal (Java)
- Binary Tree Level Order Traversal II (Java)
- Binary Tree Zigzag Level Order Traversal (Java)
- [LeetCode][Java] Binary Tree Level Order Traversal
- 102Binary Tree Level Order Traversal (java)
- (java)Binary Tree Level Order Traversal II
- (java)Binary Tree Level Order Traversal
- leetcode:Binary Tree Level Order Traversal 【Java】
- Binary Tree Zigzag Level Order Traversal 【Java】
- LeetCode102 Binary Tree Level Order Traversal Java
- binary-tree-level-order-traversal Java code
- binary-tree-level-order-traversal Java code
- Leetcode:102. Binary Tree Level Order Traversal(JAVA)
- 举例说明下Model的分层,Model、Logic、Service
- android应用程序启动详情之Dalvik虚拟机
- 学习使用MyEclipse时遇到的问题
- javax.servlet.http.HttpServletResponse下爆红线
- CSDN
- 102. Binary Tree Level Order Traversal Java Solutions
- SiteMesh3.0的下载,简介与使用
- MacOS无法登录App Store修复
- java+ffmpeg
- [FAQ17627]电信自注册基础知识
- Unity3d学习笔记(3)--牧师与魔鬼游戏
- Genymotion ERR_NAME_NOT_RESOLVED
- React之ref详细用法
- Swift 协议关系图