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

2021-09-25 04:51:10 字數 564 閱讀 9243

package project;

/** * 題目:二叉搜尋樹的第k個結點。

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

* 例如(5,3,7,2,4,6,8)中,按結點數值大小順序第三小結點的值為4。

* @author hexiaoli

* 思路:劍指offer

*二叉搜尋樹:左子結點的值 < 根結點的值 < 右子結點的值。

二叉搜尋樹中序遍歷序列為遞增序列,所以中序遍歷到第k個結點即為第k小的結點。

*/class treenode

}public class main

index++;

//判斷是不是第k個節點

if (index == k)

//找到根節點的右孩子

node = kthnode(proot.right,k);

if(node !=null)

} return null;

} public static void main(string args)

}

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

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

給定一棵二叉搜尋樹,請找出其中的第k小的treenode結點。思路1 最直接的,我們知道將一棵二叉搜尋樹進行中序遍歷,得到的結果就是公升序排列的,這樣就能輕鬆找到了。實現 class solution treenode kthnode treenode proot,int k 仔細想想上面的實現,不...

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

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