C - 从二叉树中删除节点

C - Deleting node from Binary Tree

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

即如果我有这个二叉树:

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

我想删除值为 2 的节点。

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