題目描述:
測試用例:給定的樹 s:給定兩個非空二叉樹 s 和 t,檢驗 s 中是否包含和 t 具有相同結構和節點值的子樹
s 的乙個子樹包括 s 的乙個節點和這個節點的所有子孫。
s 也可以看做它自身的一棵子樹。
給定的樹 t:
返回 true,因為 t 與 s 的乙個子樹擁有相同的結構和節點值。
思路:
**如下:- 若s,t均為null,直接返回true;
- 若s,t其中乙個為null,返回false;
- 判斷s,t是不是相同的樹;
- 遞迴判斷s的左(右)子樹是否包含t;
class
treenode
public
treenode
(int val, treenode left, treenode right)
}public
class
solution
if(s == null || t == null)
if(s.val != t.val)
return
issametree
(s.left,t.left)
&&issametree
(s.right,t.right);}
public
boolean
issubtree
(treenode s, treenode t)
//若s,t僅有乙個為null,返回false
if(s == null || t == null)
//判斷s,t是否為相同的樹
boolean ret =
false;if
(s.val == t.val)
return ret||
issubtree
(s.left,t)
||issubtree
(s.right,t);}
}
另一棵樹的子樹
給定兩個非空二叉樹 s 和 t,檢驗 s 中是否包含和 t 具有相同結構和節點值的子樹。s 的乙個子樹包括 s 的乙個節點和這個節點的所有子孫。s 也可以看做它自身的一棵子樹。示例 1 給定的樹 s 3 4 5 1 2 給定的樹 t 4 1 2 返回 true,因為 t 與 s 的乙個子樹擁有相同的...
Leetcode 572 另一棵樹的子樹
給定兩個非空二叉樹 s 和 t,檢驗 s 中是否包含和 t 具有相同結構和節點值的子樹。s 的乙個子樹包括 s 的乙個節點和這個節點的所有子孫。s 也可以看做它自身的一棵子樹。暴力dfs class solution find方法相當於dfs,遍歷樹的結點 bool find treenode tr...
如何判斷一棵樹是不是另一棵樹的子樹
package suanfatest class treenode treenode int value treenode int value,treenode leftchild,treenode rightchild public int getvalue public void setvalu...