輸入兩棵二叉樹a和b,判斷b是不是a的子結構。(約定空樹不是任意乙個樹的子結構)
b是a的子結構, 即 a中有出現和b相同的結構和節點值。
例如:給定的樹 a:
3/ \
4 5
/ \1 2
給定的樹 b:4 /
1返回 true,因為 b 與 a 的乙個子樹擁有相同的結構和節點值。
示例 1:
輸入:a = [1,2,3], b = [3,1]
輸出:false
示例 2:
輸入:a = [3,4,5,1,2], b = [4,1]
輸出:true
時間複雜度 o(mn) : 其中 m,n 分別為樹 a 和 樹 b 的節點數量;先序遍歷樹 a 占用 o(m) ,每次呼叫 recur(a, b) 判斷占用 o(n) 。
空間複雜度 o(m) : 當樹 a 和樹 b 都退化為鍊錶時,遞迴呼叫深度最大。當 m≤n 時,遍歷樹 a 與遞迴判斷的總遞迴深度為 mm;當m>n 時,最差情況為遍歷至樹 a 葉子節點,此時總遞迴深度為 m。
劍指offer26 樹的子結構
輸入兩棵二叉樹a和b,判斷b是不是a的子結構。約定空樹不是任意乙個樹的子結構 b是a的子結構,即 a中有出現和b相同的結構和節點值。例如 給定的樹 a 3 4 5 1 2 給定的樹 b 4 1返回 true,因為 b 與 a 的乙個子樹擁有相同的結構和節點值。示例 1 輸入 a 1,2,3 b 3,...
劍指 Offer 26 樹的子結構
輸入兩棵二叉樹a和b,判斷b是不是a的子結構。約定空樹不是任意乙個樹的子結構 b是a的子結構,即 a中有出現和b相同的結構和節點值。例如 給定的樹 a 3 4 5 1 2 給定的樹 b 4 1返回 true,因為 b 與 a 的乙個子樹擁有相同的結構和節點值。示例 1 輸入 a 1,2,3 b 3,...
劍指 Offer 26 樹的子結構
輸入兩棵二叉樹a和b,判斷b是不是a的子結構。約定空樹不是任意乙個樹的子結構 b是a的子結構,即 a中有出現和b相同的結構和節點值。例如 給定的樹 a 3 4 5 1 2 給定的樹 b 4 1返回 true,因為 b 與 a 的乙個子樹擁有相同的結構和節點值。definition for a bin...