剑指offer——(20)二叉搜索树的第k个结点

版权声明:本文自由转载,转载请注明出处。 https://blog.csdn.net/qq_38071429/article/details/84929010

最近作业好多 几门结课作业一起来 很烦啊 

中序遍历二叉搜索树得到的就是升序的结点排列,遍历的时候加个判断是不是第k个结点就行了。 

/*
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;
    }
}
*/
public class Solution {
    TreeNode result = null;
    int count = 1;
    TreeNode KthNode(TreeNode pRoot, int k){
        if(k==0) return null;
        midOrder(pRoot, k);
		return result;
    }
	
	void midOrder(TreeNode p,int k){		
		//System.out.println(p.val + " K:"+k); 
		if(p==null) return;		
		midOrder(p.left, k);	
		if(k==count) {
			result = p;		
		}
        count++;
		midOrder(p.right, k);
	}
}

猜你喜欢

转载自blog.csdn.net/qq_38071429/article/details/84929010