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