1. 程式人生 > >面試題54:二叉搜尋樹的第k個結點

面試題54:二叉搜尋樹的第k個結點

題意:給定一棵二叉搜尋樹,請找出其中的第k小的結點。例如, (5,3,7,2,4,6,8)    中,按結點數值大小順序第三小結點的值為4。

思路:中序遍歷就是從小到大排序,直接中序遍歷一下就好了。

class Solution {
public:
	TreeNode* KthNode(TreeNode* pRoot, int k)
	{
		if (pRoot != NULL)
		{

			TreeNode* node = KthNode(pRoot->left, k);
			if (node) return node;
			
			if (++count == k)
				return pRoot;

			node = KthNode(pRoot->left, k);
			if (node) return node;

		}
		return NULL;
	}
private:
	int count = 0;

};