另一棵樹的子樹

2021-09-25 16:42:31 字數 1116 閱讀 6948

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

示例 1:

給定的樹 s:

3/ \

4 5

/ \1 2

給定的樹 t:

4 / \

1 2

返回 true,因為 t 與 s 的乙個子樹擁有相同的結構和節點值。

示例 2:

給定的樹 s:

3/ \

4 5

/ \1 2/0

給定的樹 t:

4/ \

1 2

返回 false。

class

solution

//2.判斷以s為根節點的樹和以t為根節點的樹是否相同if(

issametree

(s,t)

)//遞迴的去s的左右子樹查詢

//3.判斷t是不是 以s.left為根節點的樹 的子樹if(

issubtree

(s.left,t)

)//4.判斷t是不是 以s.right為根節點的樹 的子樹if(

issubtree

(s.right,t)

)//遍歷完s整棵樹還沒找到相同的樹結構,返回false

return

false;}

//判斷是否是相同的樹

public

boolean

issametree

(treenode p, treenode q)

//兩個根節點中只有乙個為空

if(p == null || q== null)

if(p.val != q.val)

//走到此處,已經可以確定兩樹當前根節點都不為空,且值相等

//遞迴判斷左子樹和右子樹

return

issametree

(p.left,q.left)

&&issametree

(p.right,q.right);}

}

leetcode 另一棵樹的子樹

題目描述 給定兩個非空二叉樹 s 和 t,檢驗 s 中是否包含和 t 具有相同結構和節點值的子樹 s 的乙個子樹包括 s 的乙個節點和這個節點的所有子孫。s 也可以看做它自身的一棵子樹。測試用例 給定的樹 s 給定的樹 t 返回 true,因為 t 與 s 的乙個子樹擁有相同的結構和節點值。思路 若...

如何判斷一棵樹是不是另一棵樹的子樹

package suanfatest class treenode treenode int value treenode int value,treenode leftchild,treenode rightchild public int getvalue public void setvalu...

判斷一棵樹是否是另一棵樹的子樹 java實現

這是乙個很經典的演算法題,聽起來好像挺難的,但是其實很簡單。我覺得我們接觸到的問題,並沒有難題,只有複雜不複雜。乙個再難的問題,也可以分解成乙個個簡單的問題,再將這些簡單的問題交給不同的人去做就構成了乙個專案。其實寫演算法也是這個思想。首先要判斷一棵樹是不是另一棵樹的子樹,我們只需遍歷一棵樹,用這個...