今日算法05-二叉树的下一个结点
一、题目描述
题目链接:牛客网
难易程度:中等
给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回 。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。
1 | public class TreeLinkNode { |
二、解题思路
我们先来回顾一下中序遍历的过程:先遍历树的左子树,再遍历根节点,最后再遍历右子树。所以最左节点是中序遍历的第一个节点。
这个遍历过程如下图所示:
代码如下:
1 | void traverse(TreeNode root) { |
① 如果一个节点的右子树不为空,那么该节点的下一个节点是右子树的最左节点;
② 否则,向上找第一个左链接指向的树包含该节点的祖先节点。
三、代码实现
1 | public TreeLinkNode GetNext(TreeLinkNode pNode) { |
推荐阅读
封面
今日算法系列,题解更新地址:https://studeyang.tech/2023/0719.html
今日算法05-二叉树的下一个结点
未找到相关的 Issues 进行评论
请联系 @studeyang 初始化创建