leetcode 另一棵樹的子樹

2021-10-19 11:41:50 字數 1264 閱讀 3250

題目描述:

給定兩個非空二叉樹 s 和 t,檢驗 s 中是否包含和 t 具有相同結構和節點值的子樹

s 的乙個子樹包括 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...