gpt4 book ai didi

java - java中二叉树的一种实现方法

转载 作者:行者123 更新时间:2023-12-01 20:18:50 24 4
gpt4 key购买 nike

fill()方法是填充高度范围内所有空的TreeNode。但是当我运行这段代码时,它抛出 NullPointerException 并且我不知道这里发生了什么。

public void fill() {
int height = height(overallRoot);
overallRoot = fill(overallRoot, height);
}

//Fill all of the nodes within the height level
private IntTreeNode fill(IntTreeNode root, int height) {
if (height == 0) { //if reaches the max height, don't add any node
return null;
} else if (root == null) { //if do not reach max height and root is null, add a series
//of new nodes until it reaches the max height
return new IntTreeNode(0, fill(root.left, height - 1), fill(root.right, height - 1));
} else {
root.left = fill(root.left, height - 1);
root.right = fill(root.right, height - 1);
}
return root;
}

//returns the height of a tree
private int height(IntTreeNode root) {
if (root == null) {
return 0;
} else {
return 1 + Math.max(height(root.left), height(root.right));
}
}

最佳答案

看看你的第一个else if。您首先建立 (root == null),然后尝试检查它的 leftright,尽管您已经知道它是null,因此没有 leftright

关于java - java中二叉树的一种实现方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58946459/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com