LCR053.二叉搜索树中的中序后继
链接:LCR053.二叉搜索树中的中序后继
难度:Medium
标签:树、深度优先搜索、二叉搜索树、二叉树
简介:给定一棵二叉搜索树和其中的一个节点 p ,找到该节点在树中的中序后继。如果节点没有中序后继,请返回 null 。
题解 1 - typescript
- 编辑时间:2021-08-14
- 执行用时:96ms
- 内存消耗:48.1MB
- 编程语言:typescript
- 解法介绍:中序遍历。
function inorderSuccessor(root: TreeNode | null, p: TreeNode | null): TreeNode | null {
  if (p === null || root === null) return null;
  let prev: TreeNode | null = null;
  let ans: TreeNode | null = null;
  inorder(root);
  return ans;
  function inorder(node: TreeNode | null): boolean {
    if (node === null) return false;
    if (inorder(node.left)) return true;
    if (prev === p) {
      ans = node;
      return true;
    }
    prev = node;
    if (inorder(node.right)) return true;
    return false;
  }
}