/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public boolean isSameTree(TreeNode p, TreeNode q) {
if(p == null && q!=null) {
return false;
}
if(p != null && q==null) {
return false;
}
if(p == null && q == null) {
return true;
}
if(p.val != q.val) {
return false;
}
return
isSameTree(p.left,q.left) && isSameTree(p.right,q.right);
}
public boolean isSubtree(TreeNode s, TreeNode t) {
//判斷一個樹是否是一個樹的子樹,則我們要找到一個與我們要找啊的這個樹的結構一模一樣,
//這裏一模一樣指的是不是全部一樣而是說 樹中有一個子樹和我們要找的子樹一模一樣。
if(s==null||t==null){
//判斷兩個樹是否爲空
return false;
}
//調用是isSameTrre方法將s和t進寫判斷
if(isSameTree(s,t))
return true;
//這步需要我們在左子樹中找到與t相等的樹
if(isSubtree(s.left,t))
return true;
//這步需要我們在右子樹中找到與t相等的樹
if(isSubtree(s.right,t))
return true;
return false;
}
}
另一顆的子樹
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.