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

2021-10-23 01:43:19 字數 513 閱讀 1762

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

非遞迴中序遍歷(nice)

treenode kthnode(treenode root, int k)else

}while(node!=null||!stack.isempty());

return null;

}

最好理解:

/*

struct treenode

};*/

class solution

//中序遍歷,將節點依次壓入vector中

void inorder(treenode* proot,vector& vec)

};

inorder函式裡的vector沒加引用,跑不出來的原因是:

加引用說明使用的是同乙個vec,不加引用會拷貝傳值,後面vec改變也不會改變前面的vec。

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

題目描述 給定一顆二叉搜尋樹,請找出其中的第k大的結點。例如,5 3 7 2 4 6 8 中,按結點數值大小順序第三個結點的值為4。解題思路 使用中序遍歷進行遍歷,得到的就是按照順序的,當遍歷到第k個就輸出即可。1 2 struct treenode 9 10 11class solution 21...

劍指offer 二叉樹 二叉樹搜尋樹

package bst import j a.util.public class bst if pre.length 0 in.length 0 treenode root new treenode pre 0 for int i 0 i in.length i return root 判斷給定陣列...

劍指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 ...