二叉搜尋樹的第k個結點

2022-08-04 09:12:16 字數 644 閱讀 5960

時間限制:c/c++ 1秒,其他語言2秒 空間限制:c/c++ 32m,其他語言64m

題目描述

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

思路:

根據二叉搜尋樹的特性:左小右大,採用中序遍歷二叉樹,得到的序列即為有序序列,然後再找第k個結點

/*

struct treenode

};*/

class solution

void inorder(treenode* proot,vector& vec)

};

上述方法需要遍歷整棵樹,取得第k個元素,複雜度為o(n),可在中序遍歷的同時,設定乙個計數器,用於記數,當等於k時,停止遞迴遍歷。

/*

struct treenode

};*/

class solution

return null;

}};

二叉搜尋樹第k個結點

題目描述 給定一顆二叉搜尋樹,請找出其中的第k大的結點。例如,5 3 7 2 4 6 8 中,按結點數值大小順序第三個結點的值為4。這個題目考慮到可以用中序遍歷求解,因為中序遍歷是搜尋二叉樹的從大到小的順序,對二叉樹進行中序遍歷,每次經過結點k值減一,一直到k值等於1,對應的結點就是要尋找的點,這個...

二叉搜尋樹的第k個結點

二叉搜尋樹的第k個結點 題目描述 給定一顆二叉搜尋樹,請找出其中的第k大的結點。例如,5 3 7 2 4 6 8 中,按結點數值大小順序第三個結點的值為4。思路 二叉搜尋樹為關鍵字排序 左子樹 根 右子樹 二叉樹的中序遍歷的訪問順序為 左子樹 根 右子樹 故找出二叉搜尋樹中第k大的節點實質為找出中序...

二叉搜尋樹的第k個結點

給定一棵二叉搜尋樹,請找出其中的第k小的結點。例如,5,3,7,2,4,6,8 中,按結點數值大小順序第三小結點的值為4。時間限制 1秒 空間限制 32768k 熱度指數 146968 中序遍歷二叉搜尋樹得到的則為乙個有序的陣列。因此,通過中序遍歷二叉搜尋樹則可得到結果 struct treenod...