在二叉树的特定位置插入元素

Insert element to binary tree at specific position

本文关键字:位置 插入 元素 定位 二叉树      更新时间:2023-10-16

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

              root
      child1        child2
  child3 child4

我需要在"child2"的左子节点添加"child5"。我该怎么做呢?我知道如何给二叉搜索树添加节点。相同的快照是这样的:

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

因为tree不是BST,所以这个解不正确。

我想说的话的图示:

               1
      2                3
  4      5

在上面的树中,'6'应该加在'3'的左边。

好的。我想这个问题的答案应该是这样的:

需要稍微调整一下BFS。当您从队列中弹出项目时,检查是否有任何子节点为空。第一个空子槽是您想要添加的位置。