Find Successor

  • n, n

// This is an input class. Do not edit.
class BinaryTree {
  constructor(value) {
    this.value = value;
    this.left = null;
    this.right = null;
    this.parent = null;
  }
}

function findSuccessor(tree, node) {
  const arr = [];
  traverseHelper(tree, node, arr);
  // console.log(arr, node.value);
  for (let i = 0; i < arr.length; i++) {
    if (arr[i].value !== node.value) continue;
    return arr[i + 1];
  }
  
  return null;
}

function traverseHelper(tree, node, arr) {
  if (tree === null) {
    return;
  }
  traverseHelper(tree.left, node, arr);
  arr.push(tree);
  traverseHelper(tree.right, node, arr);
  return;
}

// Do not edit the lines below.
exports.BinaryTree = BinaryTree;
exports.findSuccessor = findSuccessor;
  • h, 1 ( left node or parent node of right)

Last updated