![4809dbb7979358a5e0a67c6129e9038e.png](https://img-blog.csdnimg.cn/img_convert/4809dbb7979358a5e0a67c6129e9038e.png)
剑指Offer_编程题——二叉树的下一个结点
题目描述:
给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。
具体要求:
时间限制: C/C++ 1秒,其他语言2秒
空间限制: C/C++32M,其他语言64M
具体实现:
思路一:
在做题前,我们应该给大家介绍二叉树的中序遍历的相关知识:在前面的文章里给大家介绍过二叉树的遍历。因此,这里就给大家不详细介绍了。现在给大家介绍解题思路:我们根据对二叉树知识的了解,可以将情况分为三种:第一种:有右孩子,找到右孩子,循环遍历右孩子的左节点、第二种:没有右孩子,而且是根的左孩子,返回父亲节点、第三种:是父亲节点的右孩子,而且没有右孩子,则返回父亲节点的父节点等。具体的过程如下图所示: