题目
给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。
解题思路
二叉树的中序遍历要熟悉
该二叉树的中序遍历为:
G D H B E A K C I J F
a. 如果该节点有右子树,那么找该右子树的最左子树节点。
比如输入的节点为C,它有右子树,那么就找其右子树的最左节点 I
b. 如果没有右子树,节点A的父节点的左子树等于该节点A,那么节点A的父节点就是下一节点,否则继续向上搜索
比如输入的节点为H,它的父亲节的左子树不是它本身,那么就要向上搜索,
令pNode = pNode.next,此时PNode = D,它的父节点B就是下一节点
|
|