二叉查找树(Binary Search Tree,BST),也叫二叉搜索树,排序二叉树,指一棵空树或具有下列性质的二叉树:

实例

leetcode 538 convert-bst-to-greater-tree

把 bst 转为累加树,采用反向中序遍历求解

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
var convertBST = function(root) {
  var stack = [];
  var currentNode = root;
  var sum = 0;
  while (currentNode || stack.length > 0) {
    if (currentNode) {
      stack.push(currentNode);
      currentNode = currentNode.right;
    } else {
      var node = stack.pop();
      sum += node.val;
      node.val = sum;
      currentNode = node.left;
    }
  }
  return root;
};