給定一棵二叉搜尋樹,請找出其中的第k小的treenode結點。
思路1:
最直接的,我們知道將一棵二叉搜尋樹進行中序遍歷,得到的結果就是公升序排列的,這樣就能輕鬆找到了。
實現:
仔細想想上面的實現,不管查詢哪個數字,都要將整個二叉樹遍歷完才能找到,並且還需要額外開闢乙個o(n)的空間來儲存遍歷結果。class
solution
treenode*
kthnode
(treenode* proot,
int k)
};
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小的節點。因為這是二叉搜尋樹,我們可以輕易發現它的中序遍歷序列就是從小到大排列,也就是我們可以直接中序遍歷,同時計數,就可以...