劍指offer62 二叉搜尋樹的第k個結點

2021-10-20 15:43:40 字數 503 閱讀 2023

給定一棵二叉搜尋樹,請找出其中的第k小的treenode結點。

思路1:

最直接的,我們知道將一棵二叉搜尋樹進行中序遍歷,得到的結果就是公升序排列的,這樣就能輕鬆找到了。

實現:

class

solution

treenode*

kthnode

(treenode* proot,

int k)

};

仔細想想上面的實現,不管查詢哪個數字,都要將整個二叉樹遍歷完才能找到,並且還需要額外開闢乙個o(n)的空間來儲存遍歷結果。

class

solution

if(countdfs(p-

>right,k);}

treenode*

kthnode

(treenode* proot,

int k)

};

劍指Offer62 二叉搜尋樹的第k個結點

給定一棵二叉搜尋樹,請找出其中的第k小的結點。例如,5,3,7,2,4,6,8 中,按結點數值大小順序第三小結點的值為4。思路 coding utf 8 class treenode def init self,x self.val x self.left none self.right none ...

劍指offer 62 二叉搜尋樹的第k個結點

package project 題目 二叉搜尋樹的第k個結點。給定一棵二叉搜尋樹,請找出其中的第k小的結點。例如 5,3,7,2,4,6,8 中,按結點數值大小順序第三小結點的值為4。author hexiaoli 思路 劍指offer 二叉搜尋樹 左子結點的值 根結點的值 右子結點的值。二叉搜尋樹...

劍指offer(62)二叉搜尋樹的第K個節點

給定一棵二叉搜尋樹,請找出其中的第k小的結點。例如,5,3,7,2,4,6,8 中,按結點數值大小順序第三小結點的值為4。首先,我們可以先畫圖。畫完圖後我們要想辦法從中找出第k小的節點。因為這是二叉搜尋樹,我們可以輕易發現它的中序遍歷序列就是從小到大排列,也就是我們可以直接中序遍歷,同時計數,就可以...