最主要的思想就是遞迴!!!
一般對於樹的解決問題都是遞迴
我們這裡就寫成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 的乙個子樹擁有相同的...