61 二叉搜尋樹的第k個節點

2021-10-09 09:27:26 字數 951 閱讀 1112

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

思路:如果是按中序遍歷二叉搜尋樹的話,遍歷的結果是遞增排序的。所以只需要中序遍歷就很容易找到第k個節點。

# -*- coding:utf-8 -*-

# class treenode:

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

class

solution

:# 返回對應節點treenode

def__init__

(self)

: self.my_list =

defin_order

(self, proot):if

not proot:

return

none

if proot.left:

self.in_order(proot.left)

if proot.right:

self.in_order(proot.right)

defkthnode

(self, proot, k)

:# write code here

self.in_order(proot)

if k <=

0or k >

len(self.my_list)

:return

none

return self.my_list[k -

1]

二叉搜尋樹的第k個節點

題目描述 給定一顆二叉搜尋樹,請找出其中的第k大的節點。只需中序遍歷一顆二叉搜尋樹,就很容易找出它的第k大節點 非遞迴方法 class solution treenode pnode s.top s.pop if cnt k return pnode p pnode right return nul...

樹 二叉搜尋樹的第K個節點

給定一棵二叉搜尋樹,請找出其中的第k小的結點。例如,5,3,7,2,4,6,8 中,按結點數值大小順序第三小結點的值為4。分析 二叉搜尋樹就是每個節點x,大於其左子樹的值,小於其右子樹的值,其中序排序是遞增的。使用中序遍歷,每遍歷乙個節點,k 1,直到k減到1,即為第k小的節點 function t...

二叉搜尋樹的第k個節點 js

給定一棵二叉搜尋樹,請找出其中的第k小的結點。例如,5,3,7,2,4,6,8 中,按結點數值大小順序第三小結點的值為4。因為是二叉搜尋樹,它或者是一棵空樹,或者是具有下列性質的二叉樹 若它的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 若它的右子樹不空,則右子樹上所有結點的值均大於它的根...