判斷乙個樹是不是另乙個樹的子樹

2021-09-29 11:27:49 字數 537 閱讀 7287

最主要的思想就是遞迴!!!

一般對於樹的解決問題都是遞迴

我們這裡就寫成a樹和b樹   那麼題意也就變成了  b樹是a樹的子樹

子樹也就是 b樹是a樹中的一部分    那麼首先就要判斷這兩部分是不是相等

遞迴首先比較根節點,如果根節點相等並且根節點的所有字節點都相等,那麼我們就接著向下遞迴

這裡需要仔細考慮一種情況   子樹  那麼只要是一部分就行  不用非得是下面完全相同

例如這個例子

所以**如下

/**public class treenode

*/public class solution

boolean equals(treenode t1,treenode t2)

}**中注意:這裡的順序不能變  也就是說我們必須要先判斷子樹是不是空  如果b樹是空而a不是,那麼這種情況是存在的

如果a樹是空  b樹不是  那麼顯然不成立

另乙個樹的子樹

給定兩個非空二叉樹 s 和 t,檢驗 s 中是否包含和 t 具有相同結構和節點值的子樹。s 的乙個子樹包括 s 的乙個節點和這個節點的所有子孫。s 也可以看做它自身的一棵子樹。示例 1 給定的樹 s 3 4 5 1 2 給定的樹 t 4 1 2 返回 true,因為 t 與 s 的乙個子樹擁有相同的...

另乙個樹的子樹

給定兩個非空二叉樹 s 和 t,檢驗 s 中是否包含和 t 具有相同結構和節點值的子樹。s 的乙個子樹包括 s 的乙個節點和這個節點的所有子孫。s 也可以看做它自身的一棵子樹。遞迴class solution object def issubtree self,s,t def ifsame s,t ...

另乙個樹的子樹

給定兩個非空二叉樹 s 和 t,檢驗 s 中是否包含和 t 具有相同結構和節點值的子樹。s 的乙個子樹包括 s 的乙個節點和這個節點的所有子孫。s 也可以看做它自身的一棵子樹。示例 1 給定的樹 s 3 4 5 1 2 給定的樹 t 4 1 2 返回 true,因為 t 與 s 的乙個子樹擁有相同的...