每日一题之AcWing 19.二叉树的下一个节点
题目链接:AcWing 19. 二叉树的下一个节点
¶一、题解
题目大意:
给定一个二叉树中的一个节点,找到使用中序遍历的下一个节点!
思路:
分情况讨论即可!
- 若当前节点有右子树(例如下图的C),则表示当前节点的左子树已经遍历完毕,则只要去找他的右子树得最左边节点就是该节点的后继节点(即B)
- 若当前节点没有右子树(例如下图的D),则表示当前节点左子树已经遍历完毕,需要沿着父节点找,找第一个是其父节点左儿子的节点,例如当前节点是D,则第一个满足是其父节点左儿子的节点是F,则C的father就是D的后继,即F是D的后继。
简图如下:
时间复杂度:O(n)
空间复杂度:O(1)
¶二、AC代码
参考代码:
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小牛博客!
评论