糖逗 发表于 2021-5-5 15:21:31

C++刷LeetCode(面试题 04.06. 后继者)【递归】

本帖最后由 糖逗 于 2021-5-5 17:46 编辑

题目描述:
设计一个算法,找出二叉搜索树中指定节点的“下一个”节点(也即中序后继)。

如果指定节点没有对应的“下一个”节点,则返回null。

示例 1:

输入: root = , p = 1

2
/ \
1   3

输出: 2
示例 2:

输入: root = , p = 6

      5
   / \
    3   6
   / \
2   4
/   
1

输出: null

来源:力扣(LeetCode)
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。



class Solution {
public:
    TreeNode* inorderSuccessor(TreeNode* root, TreeNode* p) {
      //递归
      if(root == NULL){
            return NULL;
      }
      if(root -> val <= p -> val){
            return inorderSuccessor(root -> right, p);
      }else{
            TreeNode* store = inorderSuccessor(root -> left, p);
            if(store == NULL){
                return root;
            }else{
                return store;
            }
      }
    }
};
页: [1]
查看完整版本: C++刷LeetCode(面试题 04.06. 后继者)【递归】