二叉树的层序遍历
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;
/**
* 二叉树的层序遍历
*
* 执行结果:通过
* 执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户
* 内存消耗:41.2 MB, 在所有 Java 提交中击败了88.96%的用户
* 通过测试用例:34 / 34
*
*/
public class BinaryTreeLevelOrderTraversal {
public List<List<Integer>> levelOrder(TreeNode root) {
List<List<Integer>> result = new ArrayList<List<Integer>>();
method(root,result);
return result;
}
private void method(TreeNode root, List<List<Integer>> result) {
if(null == root){
return;
}
Queue<TreeNode> queue = new LinkedList<TreeNode>();
queue.add(root);
while (!queue.isEmpty()){
int size = queue.size();
List<Integer> list = new ArrayList<Integer>();
for(int i = 0;i<size;i++){
TreeNode poll = queue.poll();
list.add(poll.val);
if(poll.left != null){
queue.add(poll.left);
}
if(poll.right != null){
queue.add(poll.right);
}
}
result.add(list);
}
}
}
评论区