AcWing 19. 二叉树的下一个节点
原题链接
中等
作者:
白-white
,
2022-08-05 03:10:26
,
所有人可见
,
阅读 224
简单的go语言
func inorderSuccessor(p *TreeNode) *TreeNode {
if p.Right == nil {
for p.Father != nil && p.Father.Right == p {
p = p.Father
}
return p.Father
}
p = p.Right
for p.Left != nil {
p = p.Left
}
return p
}
cpp代码
class Solution {
public:
TreeNode* inorderSuccessor(TreeNode* p) {
if (!p->right){
while (p->father && p->father->right == p){
p = p->father;
}
return p->father;
}
p = p->right;
while (p->left){
p = p->left;
}
return p;
}
};