Day21 | 530.二叉搜尋樹的最小絕對差、501.二叉搜尋樹中的眾數 、236. 二叉樹的最近公共祖先

forrestr發表於2024-06-15

530.二叉搜尋樹的最小絕對差

需要領悟一下二叉樹遍歷上雙指標操作,優先掌握遞迴
題目連結/文章講解:https://programmercarl.com/0530.二叉搜尋樹的最小絕對差.html
影片講解:https://www.bilibili.com/video/BV1DD4y11779

思考

中序遍歷的同時,用pre記錄一下上一個節點。

class Solution:
    def __init__(self):
        self.min_num = float('inf')
        self.pre = None
    def traversal(self,root):
        if root is None:
            return
        self.traversal(root.left)
        if self.pre:
            self.min_num = min(self.min_num,root.val - self.pre.val)
        self.pre = root
        self.traversal(root.right)

    def getMinimumDifference(self, root: Optional[TreeNode]) -> int:
        self.traversal(root)
        return self.min_num

501.二叉搜尋樹中的眾數

和 530差不多雙指標思路,不過 這裡涉及到一個很巧妙的程式碼技巧。

可以先自己做做看,然後看我的影片講解。

https://programmercarl.com/0501.二叉搜尋樹中的眾數.html
影片講解:https://www.bilibili.com/video/BV1fD4y117gp

236. 二叉樹的最近公共祖先

本題其實是比較難的,可以先看我的影片講解

https://programmercarl.com/0236.二叉樹的最近公共祖先.html
影片講解:https://www.bilibili.com/video/BV1jd4y1B7E2

相關文章