給定一顆二叉搜尋樹,請找出其中的第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 ...