【发布时间】:2014-04-14 22:08:18
【问题描述】:
我正在尝试插入一个二进制节点。我的代码很复杂,没有挽救它的希望,所以我打算重写它(基本上我没有考虑回溯,也没有仔细考虑算法)。
我正在尝试使用顺序遍历插入二进制节点,但我不明白我应该如何回溯。
D
/ \
B E
/ \ / \
A C F
如何搜索根 D 的左子树,然后返回并搜索右子树?这可能是一个愚蠢的问题,但我很难过。我能想到的最好的是这样的:
if (!root.hasLeftChild) {
root = root.getLeftChild();
recurse(root);
}
但是当我到达底部时,我无法回到根部。此外,它不能解决如果我到达左下角节点我必须在开始回溯之前填满该节点的两个子节点的问题。
我想我想错了。
【问题讨论】:
标签: java recursion binary-tree