C - 从二叉树中删除节点

时间:2016-12-16 18:34:23

标签: c tree binary-tree

我想知道如何从非搜索二叉树中删除节点。

即。如果我有这个二叉树:

   ....0....
 ...1.....2...
.......3.....4..

我想删除值为2的节点。

1 个答案:

答案 0 :(得分:0)

如果它是一个有序树(如搜索树),通常会删除节点(示例中为2)并将其替换为左子树子的最右侧叶子({{ 1}})或右侧子树的最左侧(3)。如果它不是二叉搜索树,您也可以这样做。当然,这取决于树的语义和结构所代表的含义(如果有的话)。如果结构没有意义,那么只需删除要删除的节点,并将其替换为任何叶节点。