對稱的二叉樹

題目:
請實現(xiàn)一個函數(shù),用來判斷一顆二叉樹是不是對稱的。注意,如果一個二叉樹同此二叉樹的鏡像是同樣的,定義其為對稱的。

思路:
對稱的特性就是當前節(jié)點的左子節(jié)點和右子節(jié)點一定是相等的,左子節(jié)點的左右節(jié)點和右子節(jié)點左右節(jié)點對稱相等.

代碼:

public class IsSymmetrical
{
    /**
     * 1.對稱的特稱當前節(jié)點的左右節(jié)點相同,左右節(jié)點的子節(jié)點相互對稱
     * @param pRoot
     * @return
     */
    public boolean isSymmetrical(TreeNode pRoot){
         if(pRoot == null)
             return false;

        return isSymmetrical(pRoot.left,pRoot.right);
    }

    private boolean isSymmetrical(TreeNode left,TreeNode right){
        //如果兩個左右節(jié)點同時為空,返回true
        if(left==null && right==null){
            return true;
        }
        //如果兩個節(jié)點一個為空一個不為空返回false
        //代碼到了這個階段說明左右子樹同時為空的可能性已經(jīng)判斷完了
        //如果一方出現(xiàn)null,直接返回false
        if(left==null || right==null){
            return false;
        }
        //如果當個節(jié)點值相等且子節(jié)點成對稱形狀,返回true
        return (left.val == right.val) &&
                isSymmetrical(left.left,left.right) &&
                isSymmetrical(left.right,left.left);
    }
    
}

?著作權(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ù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 樹的概述 樹是一種非常常用的數(shù)據(jù)結(jié)構(gòu),樹與前面介紹的線性表,棧,隊列等線性結(jié)構(gòu)不同,樹是一種非線性結(jié)構(gòu) 1.樹的定...
    Jack921閱讀 4,765評論 1 31
  • 本系列導航:劍指offer(第二版)java實現(xiàn)導航帖 面試題28:對稱的二叉樹 題目要求:判斷一棵二叉樹是不是對...
    ryderchan閱讀 1,071評論 0 0
  • 題目描述請實現(xiàn)一個函數(shù),用來判斷一顆二叉樹是不是對稱的。注意,如果一個二叉樹同此二叉樹的鏡像是同樣的,定義其為對稱的。
    NoFacePeace閱讀 258評論 0 0
  • 偶然一次和單位的花匠聊天,花匠伯伯是一位60多歲的老人,身體還挺好,就是好像耳朵有點背,戴個助聽器。那天是我剛休完...
    長弓心悅閱讀 338評論 0 0
  • 一、生活上的概念 現(xiàn)金流量比率=營業(yè)活動現(xiàn)金流量/流動負債 「營業(yè)活動現(xiàn)金流量」就是我們個人的凈收入,掙回來的錢除...
    怪怪顧客閱讀 704評論 0 0

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