給定兩個非空二叉樹 s 和 t,檢驗 s 中是否包含和 t 具有相同結構和節點值的子樹。s 的一個子樹包括 s 的一個節點和這個節點的所有子孫。s 也可以看做它自身的一棵子樹。
示例 1:
給定的樹 s:
3
/ \
4 5
/ \
1 2
給定的樹 t:
4
/ \
1 2
返回 true,因爲 t 與 s 的一個子樹擁有相同的結構和節點值。
示例 2:
給定的樹 s:
3
/ \
4 5
/ \
1 2
/
0
給定的樹 t:
4
/ \
1 2
返回 false。
方法一:DFS 暴力匹配
思路和算法
這是一種最樸素的方法 —— DFS 枚舉 s 中的每一個節點,判斷這個點的子樹是否和 t 相等。如何判斷一個節點的子樹是否和 t 相等呢,我們又需要做一次 DFS 來檢查,即讓兩個指針一開始先指向該節點和 t