先做leetcode100,判斷兩棵樹是否相同,再來做這個思路會快捷很多
這個思路:
t是s,t是s的左子樹,t是s的右子樹 返回true
因為題目說了,s,t都非空,s是母樹,t是子樹。少了很多麻煩
直接上**。我的注釋應該很清楚
/**
* definition for a binary tree node.
* public class treenode
* }*/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)
// 短路運算子,有乙個為真,返回真
return
issametree
(s,t)
||issubtree
(s.left,t)
||issubtree
(s.right,t);}
}
leetcode 572 另乙個樹的子樹
在樹的遍歷中,時刻警惕每一處需要訪問的有沒有可能是null,如果null怎麼處理 判斷指標是不是null既能避免訪問空指標而造成程式崩潰,同時也經常能設定遞迴的退出條件 接著先審題 給定兩個非空二叉樹 s 和 t,檢驗s 中是否包含和 t 具有相同結構和節點值的子樹。s 的乙個子樹包括 s 的乙個節...
Leetcode 572 另乙個樹的子樹
題目描述 給定兩個非空二叉樹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也可以看做它自身的一棵子樹。示例 1 給定的樹 s 3 4 5 1 2給定的樹 t 4 1 2返回true,因為 t 與 s 的乙個子樹擁有相同的結構和節點值。示例 2 給定...