102Binary Tree Level Order Traversal (java)
来源:互联网 发布:淘宝上网 编辑:程序博客网 时间:2024/05/01 08:40
层次遍历,这两题,一题是从root到leaf,二题是从leaf到root,用list.add(position,value);就行。
/**
* 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>> answerList = new ArrayList<>();
Queue<TreeNode> queue = new LinkedList<TreeNode>();
TreeNode nextLevelNode=null;
if(root == null) return answerList;
queue.add(root);
while(!queue.isEmpty()){
List<Integer> temp = new ArrayList<Integer>();
nextLevelNode =null;
while(nextLevelNode != queue.peek()&&queue.isEmpty() == false){
TreeNode currentNode = queue.remove();
if(nextLevelNode == null){
if(currentNode.left != null) nextLevelNode = currentNode.left;
else if(currentNode.right != null) nextLevelNode = currentNode.right;
}
temp.add(currentNode.val);
if(currentNode.left !=null) queue.add(currentNode.left);
if(currentNode.right !=null) queue.add(currentNode.right);
}
answerList.add(temp);
}
return answerList;
}
}
/**
* 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>> levelOrderBottom(TreeNode root) {
List<List<Integer>> answerList = new ArrayList<>();
Queue<TreeNode> queue = new LinkedList<TreeNode>();
TreeNode nextLevelNode=null;
if(root == null) return answerList;
queue.add(root);
while(!queue.isEmpty()){
List<Integer> temp = new ArrayList<Integer>();
nextLevelNode =null;
while(nextLevelNode != queue.peek()&&queue.isEmpty() == false){
TreeNode currentNode = queue.remove();
if(nextLevelNode == null){
if(currentNode.left != null) nextLevelNode = currentNode.left;
else if(currentNode.right != null) nextLevelNode = currentNode.right;
}
temp.add(currentNode.val);
if(currentNode.left !=null) queue.add(currentNode.left);
if(currentNode.right !=null) queue.add(currentNode.right);
}
answerList.add(0,temp);
}
return answerList;
}
}
- 102Binary 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
- (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
- 102. 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
- [leetcode-102]Binary Tree Level Order Traversal(java)
- java基础知识:java方法传参机制
- KMP简单应用
- 虚方法 oc
- 见证奇迹的时刻 70平老房重新焕发魅力
- uva 108 Maximum Sum 最大子矩阵和
- 102Binary Tree Level Order Traversal (java)
- light oj 1013 LCS 应用
- 类成员函数指针
- 网上处方药物手册Rxlist 及其药学信息资源
- 使用mybatis开发原始dao
- 仿qq未读消息
- 深入理解JVM性能调优
- XPath语法
- 直接插入排序算法