我正在尝试进行级别顺序遍历并希望传递这个二叉树
[3,9,20,null,null,15,7]
进入方法
public List<List<Integer>> levelOrder(TreeNode root) {
但这行不通。
TreeNode bt = [3,9,20,null,null,15,7];
levelOrder(bt);
这是 levelOrder 方法
public List<List<Integer>> levelOrder(TreeNode root) {
Queue<TreeNode> queue = new LinkedList<TreeNode>();
List<List<Integer>> wrapList = new LinkedList<List<Integer>>();
if(root == null) return wrapList;
queue.offer(root);
while(!queue.isEmpty()){
int levelNum = queue.size();
List<Integer> subList = new LinkedList<Integer>();
for(int i=0; i<levelNum; i++) {
if(queue.peek().left != null) queue.offer(queue.peek().left);
if(queue.peek().right != null) queue.offer(queue.peek().right);
subList.add(queue.poll().val);
}
wrapList.add(subList);
}
return wrapList;
}
这是树节点
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
最佳答案
您必须创建您想要创建的每个 TreeNode。
TreeNode bt = new TreeNode(3);
TreeNode a = new TreeNode(9);
TreeNode b = new TreeNode(20);
TreeNode c = new TreeNode(15);
TreeNode d = new TreeNode(7);
bt.left = a;
bt.right = b;
bt.right.left = c;
bt.right.right = d;
或者,您可以创建一个 TreeNode 构造函数,它接受整数数组并相应地创建一个 TreeNode。
关于java - 如何创建二叉树 [3,9,20,null,null,15,7] 以便将其传递给 levelOrder 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41456212/