/*
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
*/
public class Solution {
TreeNode node;
int num;
int m;
TreeNode KthNode(TreeNode pRoot, int k)//二叉搜索树的的第k小结点 就是其中序遍历的第k个结点
{
num=k;
m=0;
dfs(pRoot);
if(m<k||k<=0)//判断特例
return null;
return node;
}
void dfs(TreeNode tree){//进行中序遍历
if(tree==null) return;
dfs(tree.left);
m++;//到达剩余节点中的最左结点
if(m==num)//到达第k个结点
{
node=tree;
return;
}
dfs(tree.right);
}
}
二叉搜索树的第k个结点
最新推荐文章于 2020-10-31 08:55:16 发布