輸入兩棵二叉樹a,b,判斷b是不是a的子結構。(ps:我們約定空樹不是任意乙個樹的子結構)
public class solution
//如果找不到,那麼就再去root的左兒子當作起點,去判斷是否包含tree2
if(!result)
//判斷右節點
if(!result)
}return result;
}public boolean issontree(treenode node1,treenode node2)
//如果tree2還沒有遍歷完,tree1卻遍歷完了。返回false
if (node1==null)
//如果其中有乙個點沒有對應上,返回false
if (node1.val!=node2.val)
//如果根節點對應的上,那麼就分別去子節點裡面匹配
return issontree(node1.left,node2.left)&&issontree(node1.right,node2.right);
}}
判斷乙個樹是否是另外乙個樹的子樹
很簡單,假如說判斷b是否為a的乙個子樹,則首先對a進行遍歷,然後如果遍歷時候節點的值等於b的根節點,則進入判斷函式進行判斷,如果完全一樣,則該函式返回true,否則返回false,在後面遞迴判斷時候,要判斷前面函式返回的是true還是false,如果是true,則它的子樹就不用再判斷了,直接返回那個...
劍指offer 判斷B樹是否是A樹的子結構
題目描述 輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 一道蠻有意思的題,一開始理解錯題意了,只考慮了b樹完全覆蓋了a中某棵子樹,並且以為一定存在根節點相同就完全匹配b樹的子樹。然後想著只要從a樹根節點往下遍歷直到找到乙個節點與b的根節點匹配即可。還是想的太...
判斷樹是否為二叉樹的子樹
給定的結構是hassubtree root1,root2 即判斷root1做根的樹中是否含有root2節點做根的樹。二叉樹的問題基本可以確定是用遞迴了,肯定是先遞迴遍歷前者找到與右邊樹的根相等的節點,然後再判斷對應子樹。即遍歷前樹,找到乙個節點和root2相等,那麼就把其作為根的子樹列為考慮物件,接...