前驱节点
- 前驱节点:中序遍历时的前一个节点
如果是二叉搜索树,前驱节点就是前一个比它小的节点 - node.left!=null
前驱节点predecessor=node.left.right.right.right....
终止条件为:right为null - node.left==null&&node.parent!=null
前驱节点predecessor=node.parent.parent.paremt....
终止条件:node在parent的右子树中 - node.left==null&&node.parent==null
该节点没有前驱节点
后继节点
- 后继节点:中序遍历时的后一个节点
如果是二叉搜索树,后继节点就是后一个比它大的节点 - node.right!=null
successor=node.right.left.left.left...
终止条件:left为null - node.right==null&&node.parent!=null
successor=node.parent.parent.parent....
终止条件:node在parent的左子树中 - node.right==null&&node.parent==null
没有前驱节点