在特定位置

时间:2016-10-17 08:54:59

标签: c++ data-structures tree

这可能是一个新手问题,但我很难得到这个问题的答案。考虑这样的二叉树(不是二叉搜索树):

              root
      child1        child2

  child3 child4

我需要添加" child5"在" child2"的左边孩子。我是怎么做到的?我知道为二进制搜索树添加节点的方法。同样的快照是这样的:

if (newNode->val < root->data) {
  -> pick left node
} else {
  -> pick right node
}

由于树不是BST,因此该解决方案不正确。

我想说的内容的图示:

               1
      2                3

  4      5

在上面的树上,&#39; 6&#39;应添加为&#39; 3&#39;。

的左侧

1 个答案:

答案 0 :(得分:0)

好。我认为对此的回答是这样的:

需要对BFS进行少量调整。从队列中弹出项目时,请检查是否有任何子项为空。第一个空子槽是您要添加到的位置。