給定一棵二叉搜尋樹,請找出其中第k大的節點
思路:遞迴
已知這個是一顆二叉搜尋樹,其特點是:
1、左子樹上所有節點的值均小於它的根節點的值;
2、右子樹上所有節點的值均大於它的根節點的值;
3、左、右子樹也分別為二叉搜樹。
我們可以使用中序遍歷來遍歷二叉樹,其順序一般是左—>中—>右。如果是左子樹在前,右子樹在後,遍歷結果就是由小到大、如果是右子樹在前,左子樹在後,遍歷結果就是由大到小
因為我們要求的是第k大節點,所以我們只需要先遍歷右子樹,再遍歷左子樹即可。
另外,我們也不需要遍歷完這個二叉樹,我們只需要遍歷到第k大的就好,所以我們要定義乙個全域性變數count為k,每遍歷到乙個節點我們就減一,直到count等於1,這時遍歷到的數字就是最大的。
遞迴到第 k個節點時,應記錄結果 res ;
記錄結果後,後續的遍歷即失去意義,應提前終止(即返回)。
class
solution
public
void
dfs(treenode root)
count--
;dfs
(root.left);}
}
(八十四)字元函式庫cctype
cctype實際上就是乙個函式庫,他包括多個函式,在呼叫這些函式的時候,他會自動幫你判斷,是否是該函式要求的型別,如果是,返回乙個非0 int值 並非固定的 但可以理解為true值 因為bool後是1 如果不是,返回乙個0。例如 括號內填變數名,或者用 包含在一起的字元 isalpha 是查證是否是...
七十三 八十四,閻王不接自己去
人過古稀,七十三 與 八十四 這兩個數字猶如魔影,總在垂幕之年的老人眼前晃來晃去,七十 三 八十四,閻王不請自己去 的說法,一直在民間流傳。其實,這與我國古代的兩位 聖人孔子和 孟子的死亡年齡有關。孔子生於西元前五五一年,死於西元前四七九年,周歲為七十二歲,虛歲是七十三歲 孟子生於西元前三七二年,死...
一念永恆 第八十四章 難以置信的爆發
白小純聽到這一聲怒吼,嚇了一跳,連忙回頭,一眼就看到了衝殺而來的周長老,他眼睛猛地睜大,只覺得魂飛魄散。尤其是周長老凶神惡煞的模樣,吼出的話語雖不是要白小純的命,可讓他親自體會一下那隻鳳鳥的淒苦,這種事情,白小純一想到那鳳鳥一整天幾乎把香雲山所有的鳥都撲了,連靈尾雞都不放過後,他就覺得毛骨悚然。腦海...