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

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

http://www.nowcoder.com/questionTerminal/c37ec6a9e4084b9c943be2d3a369e177

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

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

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

相关推荐

不愿透露姓名的神秘牛友
01-20 15:00
24届毕业生, 计算机专业,因为公司强制安排去了人力,氛围不好,没人教我,又一堆活要给我,领导和稀泥,做不完的表格,每天都笑不出来,真的感觉要崩溃了,想离职,但是还没找到下家,上班的意义到底是什么呢?
在思考的熊熊很讨厌吃香菜:不舒服的环境,工作下去也只是对身心不益。我们肯定是有得选的,不要放弃。我也是24届,已经找到第三份java的工作了,26号入职领电脑,薪资还整整增加了50%。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务