1. 程式人生 > 其它 >劍指 Offer 54. 二叉搜尋樹的第k大節點_CodingPark程式設計公園

劍指 Offer 54. 二叉搜尋樹的第k大節點_CodingPark程式設計公園

技術標籤:leetcodeleetcode

二叉搜尋樹的第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
 

限制:
1 ≤ k ≤ 二叉搜尋樹元素個數

連結:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-di-kda-jie-dian-lcof

解答

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    def kthLargest(self, root: TreeNode, k: int) -> int:
        que = collections.deque()
        que.append(root)
res = [] while que: res.append(que[0].val) if que[0].left: que.append(que[0].left) if que[0].right: que.append(que[0].right) que.popleft() res = sorted(res)[::-1] return res[k-1]

在這裡插入圖片描述

在這裡插入圖片描述