劍指 Offer 26 樹的子結構

2022-06-11 21:00:16 字數 773 閱讀 8834

這個題做出來了

第一想法是,b樹的root節點值非常重要,先要找到a樹和b.root值一樣的節點,才能進行下面的判斷。

所以先把找到節點後,再找結構的函式寫出來:

public

boolean

test(treenode a,treenode b)

//a可能為null,又因為b為null的結果全部排除了,所以直接返回錯誤

if(a.val!=b.val)

if(b.left!=null

)

}if(b.right!=null

)

}return

true

; }

遞迴的條件是

a不含b子結構===test(a,b)為false&test(a.left,b)為false&test(a.right,b)為false

可能需要&&?

public

boolean

issubstructure(treenode a, treenode b)

//遞迴遍歷這個樹,如果找到節點符合的,test,如果不符合就下乙個

if(!test(a,b)&&!issubstructure(a.left,b)&&!issubstructure(a.right,b))

else

}

劍指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...