题目描述:
给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。
知识点:
解题代码:
- 递归版 ```javascript // 中序遍历递归版
function KthNode(pRoot, k) { // write code here if(!pRoot) return null; const res = []; const midOreder = (node) => { if(node.left) preOreder(node.left); res.push(node); if(node.right) preOreder(node.right); } preOreder(pRoot) return res[k-1]; }
- 非递归版
```javascript
// 中序遍历非递归版
function KthNode(pRoot, k)
{
// write code here
if(!pRoot) return null;
const res = [];
const stack = [];
let p = pRoot;
while (stack.length || p) {
while(p) {
stack.push(p);
p = p.left;
}
let temp = stack.pop();
res.push(temp);
p = temp.right;
}
return res[k-1];
}