101.對稱二叉樹

給定一個二叉樹筐付,檢查它是否是鏡像對稱的啊片。

例如涛浙,二叉樹 [1,2,2,3,4,4,3] 是對稱的。


image.png

但是下面這個 [1,2,2,null,3,null,3] 則不是鏡像對稱的:


image.png

法一:遞歸調用

class Solution {
    public boolean isSymmetric(TreeNode root) {
        //遞歸
        if(root==null)
            return true;
        //空節(jié)點是特殊二叉樹
        return dfs(root.left,root.right);
    }
    public boolean dfs(TreeNode p,TreeNode q){
        //當有一個為空然磷,另一個必須也為空
        if(p==null || q==null)
            return (p==null)&&(q==null);
        //左邊往左走右邊就得往右走以求對稱
        //一旦有一點不對稱立即返回false
        return p.val==q.val && dfs(p.left,q.right) && dfs(p.right,q.left);
    }
}

法二:迭代法
(利用94題的中序遍歷【LDR】的步驟郑趁,左邊一樣,右邊反著來)
(94題是開一個棧姿搜,將tree.left的結點(1寡润、2捆憎、4、8)壓入棧梭纹,等right遍歷完就pop)
先放一個94題的代碼

class Solution {
    public List<Integer> inorderTraversal(TreeNode root) {
        //先畫出一棵深度為4的樹以幫助理解記憶
        //建立一個棧躲惰,將tree.left(1、2变抽、4础拨、8···)壓入棧,每次取出
        //將排序好的放入鏈表中绍载,最后返回鏈表
        List <Integer> res = new ArrayList<>();
        Stack <TreeNode>stack=new Stack<>();
        TreeNode p=root;
        while(p!=null || !stack.isEmpty()){
            while(p!=null){
                stack.push(p);
                p=p.left;
            }
            p=stack.pop();
            res.add(p.val);
            p=p.right;
        }
        return res;
    }
}

接下來回歸正題101
這次要建立兩個棧分別用來存左邊和右邊的節(jié)點

class Solution {
    public boolean isSymmetric(TreeNode root) {
        //遞歸
        if(root==null)
            return true;
        Stack <TreeNode> stkleft=new Stack<>();
        Stack <TreeNode> stkright=new Stack<>();
        TreeNode l=root.left, r=root.right;
        while(l!=null || r!=null || !stkleft.empty() || !stkright.empty()){
            while( (l!=null) && (r!=null) ){
                stkleft.push(l);
                stkright.push(r);
                l=l.left;
                r=r.right;
            }
            //結束循環(huán)之后一個空一個不空就返回false
            if(l!=null || r!=null)
                return false;
            //成功的話要給l和r賦值诡宗,并把使用過的點pop出來
            l=stkleft.pop();
            
            r=stkright.pop();
            
            if(l.val!=r.val)
                return false;
            //否則的話,把l的左子樹加進來逛钻,r的右子樹加進來
            l=l.right;
            r=r.left;
        }
        return true;
    }   
}

迭代還可以用隊列的方法······

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末僚焦,一起剝皮案震驚了整個濱河市锰提,隨后出現的幾起案子曙痘,更是在濱河造成了極大的恐慌,老刑警劉巖立肘,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件边坤,死亡現場離奇詭異,居然都是意外死亡谅年,警方通過查閱死者的電腦和手機茧痒,發(fā)現死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來融蹂,“玉大人旺订,你說我怎么就攤上這事〕迹” “怎么了区拳?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長意乓。 經常有香客問我樱调,道長,這世上最難降的妖魔是什么届良? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任笆凌,我火速辦了婚禮,結果婚禮上士葫,老公的妹妹穿的比我還像新娘乞而。我一直安慰自己,他們只是感情好慢显,可當我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布晦闰。 她就那樣靜靜地躺著放祟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪呻右。 梳的紋絲不亂的頭發(fā)上跪妥,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天,我揣著相機與錄音声滥,去河邊找鬼眉撵。 笑死,一個胖子當著我的面吹牛落塑,可吹牛的內容都是我干的纽疟。 我是一名探鬼主播,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼憾赁,長吁一口氣:“原來是場噩夢啊……” “哼污朽!你這毒婦竟也來了?” 一聲冷哼從身側響起龙考,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤蟆肆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后晦款,有當地人在樹林里發(fā)現了一具尸體炎功,經...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年缓溅,在試婚紗的時候發(fā)現自己被綠了蛇损。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡坛怪,死狀恐怖淤齐,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情袜匿,我是刑警寧澤更啄,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站沉帮,受9級特大地震影響锈死,放射性物質發(fā)生泄漏。R本人自食惡果不足惜穆壕,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一待牵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧喇勋,春花似錦缨该、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蛤袒。三九已至,卻和暖如春膨更,著一層夾襖步出監(jiān)牢的瞬間妙真,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工荚守, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留珍德,地道東北人。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓矗漾,卻偏偏與公主長得像锈候,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子敞贡,可洞房花燭夜當晚...
    茶點故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內容

  • 更多題目移步【力扣簡單題】 題目 難度:★☆☆☆☆類型:二叉樹 給定一個二叉樹泵琳,檢查它是否是鏡像對稱的。 示例 例...
    玖月晴閱讀 1,336評論 0 0
  • 對稱二叉樹 題目 給定一個二叉樹誊役,檢查它是否是鏡像對稱的获列。 例如,二叉樹 [1,2,2,3,4,4,3] 是對稱的...
    飲酒醉回憶閱讀 135評論 0 1
  • 101. 對稱二叉樹 給定一個二叉樹势木,檢查它是否是鏡像對稱的蛛倦。 例如歌懒,二叉樹 [1,2,2,3,4,4,3] 是對...
    one_zheng閱讀 257評論 0 0
  • 題目 給定一個二叉樹啦桌,檢查它是否是鏡像對稱的。 例如及皂,二叉樹 [1,2,2,3,4,4,3] 是對稱的甫男。 但是下面...
    ___Qian___閱讀 632評論 0 1
  • 今天新浪微博推送了很多關于遠嫁的博客,讓我突然想到了自己和我的發(fā)小們验烧。 我沒有遠嫁板驳,找的婆家離我娘家開車只需要十五...
    狂奔的蝸牛428閱讀 227評論 1 4