java - 如何创建二叉树 [3,9,20,null,null,15,7] 以便将其传递给 levelOrder 方法?

标签 java binary-tree

我正在尝试进行级别顺序遍历并希望传递这个二叉树

[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/

相关文章:

java - 为什么自定义的ExpandableListView在android中不显示

Java程序 "freezes shortly"

c++ - 二叉树中的节点搜索溢出堆栈

java - 制作二叉搜索树会引发异常

java - 实现二叉树的节点类

c++ - 插入时树中的遍历指针

java - 无法将日期转换为天数

java - 如何从 Blueprint XML for JBoss Fuse 的属性文件中读取值?

javascript - 树遍历,退出最终递归时传递的变量重置为0(Javascript)

java - Java中的byte[]到String : What does the output mean?