二叉搜尋樹 BST 的第k大節點

2021-09-26 10:44:19 字數 920 閱讀 5273

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

利用bst中序有序的性質

# -*- 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.res =

def order(self,root):

if not root:

return

self.order(root.left)

self.order(root.right)

def kthnode(self, proot, k):

# write code here

if not proot or k<=0:

return none

self.order(proot)

if k > len(self.res):

return none

return self.res[k-1]

//思路:二叉搜尋樹按照中序遍歷的順序列印出來正好就是排序好的順序。

// 所以,按照中序遍歷順序找到第k個結點就是結果。

public class solution

return null;

}}

54 二叉搜尋樹的第k大節點

給定一棵二叉搜尋樹,請找出其中第k大的節點。示例 1 輸入 root 3,1,4,null,2 k 1 3 1 4 2 輸出 4 示例 2 輸入 root 5,3,6,2,4,null,null,1 k 3 5 3 6 2 4 1輸出 4限制 題解 中文力扣中的題意和書上的不太一致,書上是輸出從小到...

54 二叉搜尋樹的第k大節點

給定一棵二叉搜尋樹,請找出其中第k大的節點。示例 1 輸入 root 3 1,4 null,2 k 13 1 4 2輸出 4 示例 2 輸入 root 5 3,6 2,4 null,null,1 k 35 3 6 24 1輸出 4限制 二叉搜尋樹的中序遍歷就是有序的,故中序遍歷後取出倒數第k個元素即...

二叉樹的第K大節點

給定一棵二叉搜尋樹,請找出其中的第k小的結點。例如,5,3,7,2,4,6,8 中,按結點數值大小順序第三小結點的值為4。思路 遞迴的思路,返回一次k減小1.struct treenode class solution treenode res kthnodecore proot,k return ...