keepgoing20190801113019
keepgoing20190801113019
题解
在二叉树中找到一个节点的后继节点
全部文章
题解
归档
标签
去牛客网
登录
/
注册
在二叉树中找到一个节点的后继节点
1455 浏览
0 回复
2019-08-04
keepgoing20190801113019
+关注
在二叉树中找到一个节点的后继节点
http://www.nowcoder.com/practice/c37ec6a9e4084b9c943be2d3a369e177
在二叉树中找到一个节点的后继节点
二叉树中一个节点的后继节点指的是,二叉树的中序遍历的序列中的下一个节点。
中序遍历,左根
右
。(若某结点有左子树(一个结点也算子树),则先遍历左子树,然后是根结点,最后是右子树,对于子树调用同样的遍历方法(递归))。
他的后续结点有以下几种情况:
如果结点有右子树,则为右子树上最左边的结点,从右孩子开始判断该结点是否有左子结点,如果没有则为当前结点。
如果结点没有右子树,需要分下面2种情况:
(1)结点本身为父结点的右子树,需要从其父结点的父结点开始到根结点路径上查找,直到该右结点所在的子树为某结点的左子树,那么这个结点就是我们要找的后续,如果一直到根结点都找不到这样的结点,则没有后续。
(2)结点本身为父结点的左子树,后继为父结点本身。
举报
收藏
赞
评论加载中...