在普通二叉树中添加节点的方法

Ways of adding nodes in a normal binary tree

以下面的二叉树为例。假设我们想添加一些节点(关联的值并不重要)。我们可以在哪里添加节点?

在下图中,我知道我可以在树的末端添加节点(就像我画的绿色那个)。但是我们是否也可以在某条边的中间添加节点(比如我画的红色的)?

我知道二叉搜索树不是这样,但是普通的二叉树呢?另外,如果答案是肯定的,是否有另一种在普通二叉树中添加节点的方法?

提前感谢您的帮助! (我很抱歉我的绘画技巧)

can we also add nodes in the middle of a certain edge (like the red ones I drew)?

是的,边分裂成两条边,插入的节点只有一个子节点。

I know this isn't true for a Binary Search Tree, but what about a normal Binary Tree?

它有时也适用于二叉搜索树,但这不是一个好的做法,因为它比正常的插入过程更快地导致不平衡树。

is there another way of adding nodes in a normal Binary Tree?

你也可以让新节点成为二叉树的根节点,它的唯一子节点就是旧根节点。