Leetoce--572. 另一个树的子树(java)
給定兩個(gè)非空二叉樹(shù) s 和 t,檢驗(yàn)?s 中是否包含和 t 具有相同結(jié)構(gòu)和節(jié)點(diǎn)值的子樹(shù)。s 的一個(gè)子樹(shù)包括 s 的一個(gè)節(jié)點(diǎn)和這個(gè)節(jié)點(diǎn)的所有子孫。s 也可以看做它自身的一棵子樹(shù)。
示例 1:
給定的樹(shù) s:
? ? ?3
? ? / \
? ?4 ? 5
? / \
?1 ? 2
給定的樹(shù) t:
? ?4?
? / \
?1 ? 2
返回 true,因?yàn)?t 與 s 的一個(gè)子樹(shù)擁有相同的結(jié)構(gòu)和節(jié)點(diǎn)值。
示例 2:
給定的樹(shù) s:
? ? ?3
? ? / \
? ?4 ? 5
? / \
?1 ? 2
? ? /
? ?0
給定的樹(shù) t:
? ?4
? / \
?1 ? 2
返回 false。
代碼:
/**
?*?Definition?for?a?binary?tree?node.
?*?public?class?TreeNode?{
?*?????int?val;
?*?????TreeNode?left;
?*?????TreeNode?right;
?*?????TreeNode(int?x)?{?val?=?x;?}
?*?}
?*/
class?Solution?{
????public?boolean?isSubtree(TreeNode?s,?TreeNode?t)?{
????????if(s==null)?return?false;
????????return?helper(s,t)||isSubtree(s.left,t)||isSubtree(s.right,t);
????}
????public?boolean?helper(TreeNode?s,TreeNode?t){
????????if(s==null&&t==null){
????????????return?true;
????????}
????????if(s==null||t==null){
????????????return?false;
????????}
????????if(s.val!=t.val){
????????????return?false;
????????}
????????return?helper(s.left,t.left)&&helper(s.right,t.right);
????}
}
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的Leetoce--572. 另一个树的子树(java)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Leetcode--15. 三数之和
- 下一篇: 【剑指offer】面试题14- I:剪绳