Binary Tree Level Order Traversal
Description
Given a binary tree, return the level order traversal of its nodes’ values. (ie, from left to right, level by level).
/**
* Definition of TreeNode:
* public class TreeNode {
* public int val;
* public TreeNode left, right;
* public TreeNode(int val) {
* this.val = val;
* this.left = this.right = null;
* }
* }
*/
public class Solution {
/**
* @param root: A Tree
* @return: Level order a list of lists of integer
*/
public List<List<Integer>> levelOrder(TreeNode root) {
// write your code here
Queue<TreeNode> queue = new LinkedList<TreeNode>();
//List<Integer> level = new ArrayList<Integer>();
List<List<Integer>> results = new ArrayList<>();
if(root == null){
return results ;
}
queue.offer(root);
while(!queue.isEmpty()){
List<Integer> level = new ArrayList<Integer>();
int size = queue.size();
for(int i = 0 ; i < size ; i++){
TreeNode node = queue.poll() ;
level.add(node.val);
if(node.left != null){
queue.offer(node.left);
}
if(node.right != null){
queue.offer(node.right);
}
}
results.add(level);
}
return results;
}
}
本文介绍如何使用Java实现二叉树的层次遍历,通过递归队列法详细展示了如何遍历每一层节点并将其值存入列表中,适用于初学者理解层次遍历算法。
1311

被折叠的 条评论
为什么被折叠?



