1. 程式人生 > >劍指offer——(20)二叉搜尋樹的第k個結點

劍指offer——(20)二叉搜尋樹的第k個結點

最近作業好多 幾門結課作業一起來 很煩啊 

中序遍歷二叉搜尋樹得到的就是升序的結點排列,遍歷的時候加個判斷是不是第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);
	}
}