leetcode-二叉树的层次遍历(Java)
2018-08-18 08:25
435 查看
给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。
例如:
给定二叉树:
返回其层次遍历结果:
若根节点为空,直接返回;
若根节点非空,则将根节点入队,然后,判断队列是否为空,若不为空,则将队首节点出队,访问,并判断其左右子节点是否为空,若不为空,则压入队列。
例如:
给定二叉树:
[3,9,20,null,null,15,7],
3 / \ 9 20 / \ 15 7
返回其层次遍历结果:
[ [3], [9,20], [15,7] ] 借鉴其他人的思路,采用广度优先探索,使用队列。
若根节点为空,直接返回;
若根节点非空,则将根节点入队,然后,判断队列是否为空,若不为空,则将队首节点出队,访问,并判断其左右子节点是否为空,若不为空,则压入队列。
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { List<List<Integer>> res=new ArrayList(); public List<List<Integer>> levelOrder(TreeNode root) { if(root==null)return res; //边界条件 Queue<TreeNode> q=new LinkedList(); //创建的队列用来存放结点,泛型注意是TreeNode q.add(root); while(!q.isEmpty()){ //队列为空说明已经遍历完所有元素,while语句用于循环每一个层次 int count=q.size(); List<Integer> list=new ArrayList(); while(count>0){ //遍历当前层次的每一个结点,每一层次的Count代表了当前层次的结点数目 TreeNode temp=q.peek(); q.poll(); //遍历的每一个结点都需要将其弹出 list.add(temp.val); if(temp.left!=null)q.add(temp.left); //迭代操作,向左探索 if(temp.right!=null)q.add(temp.right); count--; } res.add(list); } return res; } }
相关文章推荐
- LeetCode103 BinaryTreeZigzagLevelOrderTraversal(二叉树Z形层次遍历) Java题解
- LeetCode103 BinaryTreeZigzagLevelOrderTraversal(二叉树Z形层次遍历) Java题解
- leetcode解题之102&107. Binary Tree Level Order Traversal java版(二叉树层次遍历)
- LeetCode: 107_Binary Tree Level Order Traversal II | 二叉树自底向上的层次遍历 | Easy
- JAVA实现二叉树的遍历的非递归算法及递归算法(前序,中序,后序,层次)
- java实现二叉树的层次遍历
- JAVA语言实现二叉树的层次遍历的非递归算法及递归算法。
- 二叉树的建树、遍历(先序、中序、后序、层次)(递归和非递归)--Java实现
- java语言实现二叉树的前序、中序与后序遍历(递归与非递归) 层次遍历
- Leetcode 107. 二叉树的层次遍历 II
- [leetcode-二叉树层次遍历并统计每层节点数]--103. Binary Tree Zigzag Level Order Traversal
- LeetCode: 103_Binary Tree Zigzag Level Order Traversal | 二叉树Zigzag层次遍历 | Medium
- Java二叉树按层次遍历,换行输出
- 二叉树的遍历-先序中序后序层次(java实现)
- [LeetCode] Binary Tree Level Order Traversal 二叉树层次遍历(DFS | BFS)
- 二叉树的层次遍历----java实现
- 【leetcode Java】二叉树的递归遍历以及最大深度的求解(Java)
- java实现二叉树层次遍历
- 102.LeetCode Binary Tree Level Order Traversal(easy)[二叉树层次遍历 广度搜索 队列]
- LeetCode - 107. 二叉树的层次遍历 II