LeetCode-100-相同的樹

data: 2018-12-26 21:02:10
原文鏈接


題目

給定兩個二叉樹,編寫一個函數(shù)來檢驗它們是否相同。

如果兩個樹在結(jié)構(gòu)上相同,并且節(jié)點具有相同的值,則認為它們是相同的。

示例 1:

輸入:       1         1
         / \       / \
        2   3     2   3

       [1,2,3],   [1,2,3]

輸出: true

示例 2:

輸入:      1          1
         /           \
        2             2

       [1,2],     [1,null,2]

輸出: false

題目分析

樹狀圖形式肯定需要用到遞歸

解題思路

如果當前是最后可以確定且無子節(jié)點,則直接返回結(jié)果,否則需要繼續(xù)調(diào)用本方法進行遞歸

public boolean isSameTree(TreeNode p, TreeNode q) {
        //同時為null,表明無子節(jié)點,且該元素相同
        if(p == null && q == null){
            return true;
        // 其中一個不為null,表明兩個樹不相同
        }else if((p != null && q ==null) || (q != null && p ==null)){
            return false;
        }
        // 兩個值不相同,可以確定是不同的樹
        if(p.val != q.val){
            return false;
        }else{
        // 當前樹節(jié)點相同,但是無法判斷是否還有子節(jié)點,需要遞歸調(diào)用
            return isSameTree(p.left,q.left) && isSameTree(p.right,q.right);
        }
    }

總結(jié)

本題屬于簡單題,遞歸調(diào)用本方法即可

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容