LeetCode 501 二叉搜尋樹中的眾數
阿新 • • 發佈:2018-12-24
基礎版,利用hash,即python中的字典,key存節點,value存出現的次數
class solution: def findMode(self, root): tmp = {} ans = [] if not root: return ans def countNode(r): if r.val in tmp.keys(): tmp[r.val] += 1 else: tmp[r.val] = 1 if r.left: countNode(r.left) if r.right: countNode(r.right) countNode(root) mode = max(tmp.values()) for key, value in tmp.items(): if value == mode: ans.append(key) return ans
進階版:不使用額外的空間
tips:二叉搜尋樹的中序遍歷是遞增的,指標p,ans儲存結果,遍歷,出現count等於最高頻率,將node存入ans,出現count大於當前最高頻率,ans清空