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