题目描述
思路分析
二叉树节点的后继。
经典问题。分类讨论解决。
代码实现
/*
struct TreeLinkNode {
int val;
struct TreeLinkNode *left;
struct TreeLinkNode *right;
struct TreeLinkNode *next;
TreeLinkNode(int x) :val(x), left(NULL), right(NULL), next(NULL) {
}
};
*/
class Solution {
public:
TreeLinkNode* GetNext(TreeLinkNode* p) {
if(p->right){
p=p->right;
while(p->left) p=p->left;
return p;
}
while(p->next&&p==p->next->right) p=p->next;
return p->next;
}
};