題目描述:判斷兩棵二元樹是否完全相同(結構和節點值均相同)。
解題思路:遞迴比較:若兩者都為空,回傳 true;若只有一個為空,回傳 false;若當前節點值不同,回傳 false;否則遞迴比較左子樹和右子樹。
時間複雜度:O(min(m, n)),m、n 為兩樹節點數 — 提早返回時更快。
空間複雜度:O(min(h1, h2)) — 遞迴棧深度。
1. If both null: return true 2. If one null or values differ: return false 3. Return isSameTree(p.left, q.left) AND isSameTree(p.right, q.right)
迭代同步遍歷 O(min(m,n)) 時間,O(h) 空間:用隊列同步遍歷兩棵樹 — 邏輯相同但更複雜。
序列化比較 O(m+n) 時間,O(m+n) 空間:序列化兩棵樹,比較字符串 — 時間和空間複雜度都更差。