小编Air*_*ire的帖子

如何使用二叉树中的recusrion完成回溯

我正在尝试插入二进制节点.我的代码很复杂,没有希望拯救它,所以我打算重写它(基本上我没有考虑回溯,并没有考虑所有密切关注的算法).

我正在尝试使用顺序遍历插入二进制节点,但我不明白我应该如何回溯.

     D
    / \
   B   E 
  / \ / \
 A  C F 
Run Code Online (Sandbox Code Playgroud)

我如何搜索根D的左子树,然后返回并搜索正确的子树?这可能是一个愚蠢的问题,但我很难过.我能想到的最好的是这样的:

 if (!root.hasLeftChild) {
      root = root.getLeftChild(); 
      recurse(root); 
 } 
Run Code Online (Sandbox Code Playgroud)

但是当我到达底部时,我无法回到根部.此外,它没有解决问题,如果我到达左下方节点,我必须在开始回溯之前填充该节点的两个子节点.

我想我正在以错误的方式思考这个问题.

java recursion binary-tree

4
推荐指数
1
解决办法
3885
查看次数

标签 统计

binary-tree ×1

java ×1

recursion ×1