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

2022-08-24 01:09:11 字數 493 閱讀 9368

題目描述

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

解題思路:使用中序遍歷進行遍歷,得到的就是按照順序的,當遍歷到第k個就輸出即可。

1/*2

struct treenode 9};

10*/

11class

solution

21if(target == null)//

無左節點且還未找到,返回其葉子節點的父節點,k--

2227

if(target == null && root->right != null)//

找右結點

2831

return

target;32}

33 treenode* kthnode(treenode* proot, int

k)34

39 };

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

給定一棵二叉搜尋樹,請找出其中的第k小的結點。例如,5,3,7,2,4,6,8 中,按結點數值大小順序第三小結點的值為4。非遞迴中序遍歷 nice treenode kthnode treenode root,int k else while node null stack.isempty retu...

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