在二叉树中找到一个节点的后继节点

二叉树中一个节点的后继节点指的是,二叉树的中序遍历的序列中的下一个节点。

中序遍历,左根。(若某结点有左子树(一个结点也算子树),则先遍历左子树,然后是根结点,最后是右子树,对于子树调用同样的遍历方法(递归))。
他的后续结点有以下几种情况:
  1. 如果结点有右子树,则为右子树上最左边的结点,从右孩子开始判断该结点是否有左子结点,如果没有则为当前结点。
  2. 如果结点没有右子树,需要分下面2种情况:
(1)结点本身为父结点的右子树,需要从其父结点的父结点开始到根结点路径上查找,直到该右结点所在的子树为某结点的左子树,那么这个结点就是我们要找的后续,如果一直到根结点都找不到这样的结点,则没有后续。
(2)结点本身为父结点的左子树,后继为父结点本身。