劍指 offer 26. 樹的子結構
這題實在是坑太多了,稍不留心就掉進坑了。
也是足足wa了3次並且參考了題解發現自己的思路一些小問題才最後能夠ac。
這裡要非常注意到題目給出的乙個資訊:(約定空樹不是任意乙個樹的子結構),再分析出現空樹的情形。
①:a為空樹b不為空樹,此時b顯然不可能是空樹的乙個子結構,返回false;
②:a不為空樹b為空樹,此時根據題意,b不能是任意乙個樹的子結構,所以也返回false;
③:a,b都為空樹,此時空樹也不能是空樹的子結構,所以也返回false;
分析完空樹的情形,再分析一般情況,我們需要遍歷a樹中的每乙個節點,並以正在遍歷的節點為新根,判斷此時新樹是否能夠包含b,若包含,則說明是子結構。
那麼再分析判斷是否包含的輔助函式如何編寫。還是需要先敲定根節點是否為空,如果b節點為空,那麼顯然能夠被a所包含,否則a為空就不能包含b。
其他情形則判斷根節點值是否相同,若相同,再判斷左右子樹是否能夠包含。
/**
* definition for a binary tree node.
* public class treenode
* }*/class solution
// 以a為根節點的樹是否包含有以b為根節點的樹
private boolean contains(treenode a, treenode b)
return false;}}
劍指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...