[英]Remove the node in Binary Search Tree
如何删除所有isRemoved=true;
一种方法中的二叉搜索树中的数据? 或者两个没关系。 已经有一个 remove 方法,它标记了来自方法isRemoved=true
的节点。 因此,构造函数有四种规格,它们是Type data
, left
, right
, isRemoved
。 该方法可以递归地工作与否无关紧要。
我的想法是遍历所有节点,当我找到删除的 go 和删除方法并删除它然后返回并继续查看节点。 我无法实现这个想法,因为 BST 很复杂。 你们能给我一些线索吗?
首先,您需要决定如何遍历您的树(有序、前序、后序)。
然后,您将为要删除的节点处理三种不同的情况; 当节点是叶子时,当节点有一个孩子时,当同时有左孩子和右孩子时。
遍历树,同时使用上述方法之一删除 isRemoved=true 节点,直到到达遍历中的最后一个节点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.