73. Leetcode 230. 二叉搜索树中第K小的元素 (二叉搜索树-中序遍历类)
生活随笔
收集整理的這篇文章主要介紹了
73. Leetcode 230. 二叉搜索树中第K小的元素 (二叉搜索树-中序遍历类)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給定一個二叉搜索樹的根節點 root ,和一個整數 k ,請你設計一個算法查找其中第?k?個最小元素(從 1 開始計數)。示例 1:輸入:root = [3,1,4,null,2], k = 1
輸出:1
示例 2:輸入:root = [5,3,6,2,4,null,null,1], k = 3
輸出:3思路:二叉搜索樹的中序遍歷序列為遞增序列,因此可中序遍歷二叉搜索樹,返回第 K 個元素。# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:def kthSmallest(self, root: Optional[TreeNode], k: int) -> int:if root == None:return None# 中序遍歷二叉樹res = []stack = []p_node = rootwhile stack or p_node:while p_node:stack.append(p_node)p_node = p_node.leftcur_node = stack.pop()res.append(cur_node.val)if cur_node.right != None:p_node = cur_node.rightreturn res[k-1]
總結
以上是生活随笔為你收集整理的73. Leetcode 230. 二叉搜索树中第K小的元素 (二叉搜索树-中序遍历类)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 72. Leetcode 99. 恢复二
- 下一篇: 74. Leetcode 501. 二叉