package org.example;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Queue;
//层序遍历二叉树,输出到二维数组里
//思路:
// 利用队列,从头节点开始入队出队,出队时将子节点入队即可完成层序遍历;
// 从头节点开始,记录当前队列长度---当前队列长度即为当前层序长度;当前层完全出队后,记录当前队列长度;
public class LevelOrderBinaryTree {
Queue<TreeNode> binaryQueue=new ArrayDeque<TreeNode>();
public static void main(String[]args){
}
public ArrayList<ArrayList<Integer>> levelOrder (TreeNode root) {
if (root == null) {
return new ArrayList();
}
// write code here
Queue<TreeNode> binaryQueue = new ArrayDeque<TreeNode>();
ArrayList<ArrayList<Integer>>res = new ArrayList();
ArrayList<Integer>row = new ArrayList();
binaryQueue.add(root);
int length = 1;
while (!binaryQueue.isEmpty()) {
System.out.print(length);
if (length == 0) {
length = binaryQueue.size();
res.add(row);
row = new ArrayList();
}
TreeNode cur = binaryQueue.poll();
row.add(cur.val);
if (cur.left != null) {
binaryQueue.add(cur.left);
}
if (cur.right != null) {
binaryQueue.add(cur.right);
}
length--;
}
res.add(row);
return res;
}
}
层序遍历二叉树并输出到二维数组中
最新推荐文章于 2024-10-01 18:51:18 发布
该代码使用Java实现了二叉树的层序遍历,通过创建一个队列并将头节点入队,逐层出队并添加其子节点,同时将每层的节点值存储到二维ArrayList中。主要涉及数据结构包括ArrayDeque和ArrayList。
摘要由CSDN通过智能技术生成