面试题 04.06. 后继者
思路:中序遍历,第一个大于p->val的就是答案。实在不会,用vector存中序遍历的TreeNode,一个个找。
class Solution {
public:
TreeNode* inorderSuccessor(TreeNode* root, TreeNode* p) {
if(root==NULL) return NULL;
TreeNode* left = inorderSuccessor(root->left, p);
if(left) return left;
if(root->val > p->val) return root;
return inorderSuccessor(root->right, p);
}
};