剑指OFFER----54、二叉搜索树第K大结点(js实现)

题目

给定一颗二叉搜索树,请找出其中的第k大的结点。


思路

中序遍历


function KthNode(pRoot, k)
{
    // write code here
    if(k <= 0){
        return null;
    }
    return inorderTraversal(pRoot, k);
}

function inorderTraversal (root, k) {
    if (!root) {
      return null
    }
    let count = 0
    let stack = []
    while (root || stack.length > 0) {
      while (root) {
        stack.push(root)
        root = root.left
      }
      if (stack.length > 0) {
        root = stack.pop()
        count++
        if (count === k) {
            return root
        }
        root = root.right
      }
    }
    return null
};

你可能感兴趣的:(剑指OFFER,剑指OFFER(JS版))