LeetCode Binary Search Tree 解題心得

LeetCode Binary Search Tree 解題心得

LeetCode Binary Search Tree 解題心得

Top Interview 150 關於Binary Search Tree章節心得

BST基本邏輯是左邊的node會小於父輩的值,右邊會大於長相如下

解題上一個要點,照著下面的跑法,就可以從小到大收集到BST的值

res = []        def dfs(node, res):            if not node: return            dfs(node.left, res)            res.append(node.val)            dfs(node.right, res)

因為上面的走法先跑左邊,會先跑到最左邊最底部才會return None然後猜開始append

而題型常見的有找到第n最大/小值,或是找最小值

另一種面向是檢查給定的是不是有效的BST,解題想法是既然知道res的list值一定是遞增的,所以在新增加值之前,先檢查準備要加的值是不是跟res中最後的值還大,如果發生過表示這已經不是有效的BST

Comments

Loading comments…

Leave a Comment