iT邦幫忙

2025 iThome 鐵人賽

DAY 18
0
自我挑戰組

Leetcode 自學系列 第 18

自學Leetcode Day18

  • 分享至 

  • xImage
  •  

938. Range Sum of BST
1.題目理解:

  • 我們有一棵 二元搜尋樹 (BST)。
  • 給兩個整數 low 和 high。
  • 我們要找出所有值 在 [low, high] 範圍內的節點,並且把它們加總。
    2.BST 的特性
  • 左子樹所有值 < root.val
  • 右子樹所有值 > root.val
    這意味著我們可以不用檢查所有節點,而是根據當前值與範圍比較,決定要不要往左/右走。
    3.思考步驟
    1.檢查當前節點是否存在:若 root == null,直接回傳 0。
    2.比較 root.val 和範圍:
  • 若 root.val < low → 整棵左子樹都比 low 小,不可能在範圍內 → 只要往右子樹找。
    
  • 若 root.val > high → 整棵右子樹都比 high 大,不可能在範圍內 → 只要往左子樹找。
    
  • 否則(low <= root.val <= high):
    
  •     這個值要加進總和
    
  •     並且繼續往左、右子樹找
    
    3.加總結果:遞迴回傳即可。
    4.範例:root = [10,5,15,3,7,null,18], low = 7, high = 15
    1.root = 10 → 在 [7,15] → sum = 10
    2.往左 (5) → 5 < low=7 → 忽略左邊,只往右 (7) → sum += 7
    3.往右 (15) → 在 [7,15] → sum += 15
    4.其他節點不在範圍內
    最後 sum = 7 + 10 + 15 = 32
    5.程式碼截圖:https://ithelp.ithome.com.tw/upload/images/20251001/20169241TvWyqP109M.png
    6.學習心得:今天的題目也相對比較簡單,我對於題目理解以及解題思路都比上次在最類似的題目清楚許多,我自己認為這幾天不斷地練習,效果還是有的,有讓我更進步一些。

上一篇
自學Leetcode Day17
下一篇
自學Leetcode Day19
系列文
Leetcode 自學20
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言