<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          ?LeetCode刷題實(shí)戰(zhàn)101:對(duì)稱(chēng)二叉樹(shù)

          共 1124字,需瀏覽 3分鐘

           ·

          2020-11-20 20:35

          算法的重要性,我就不多說(shuō)了吧,想去大廠,就必須要經(jīng)過(guò)基礎(chǔ)知識(shí)和業(yè)務(wù)邏輯面試+算法面試。所以,為了提高大家的算法能力,這個(gè)公眾號(hào)后續(xù)每天帶大家做一道算法題,題目就從LeetCode上面選 !

          今天和大家聊的問(wèn)題叫做?對(duì)稱(chēng)二叉樹(shù),我們先來(lái)看題面:

          https://leetcode-cn.com/problems/symmetric-tree/

          Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).

          題意


          給定一個(gè)二叉樹(shù),檢查它是否是鏡像對(duì)稱(chēng)的。

          樣例

          解題


          方法:遞歸

          如果一個(gè)樹(shù)的左子樹(shù)與右子樹(shù)鏡像對(duì)稱(chēng),那么這個(gè)樹(shù)是對(duì)稱(chēng)的。

          因此,該問(wèn)題可以轉(zhuǎn)化為:兩個(gè)樹(shù)在什么情況下互為鏡像?

          如果同時(shí)滿(mǎn)足下面的條件,兩個(gè)樹(shù)互為鏡像:

          它們的兩個(gè)根結(jié)點(diǎn)具有相同的值
          每個(gè)樹(shù)的右子樹(shù)都與另一個(gè)樹(shù)的左子樹(shù)鏡像對(duì)稱(chēng)

          我們可以實(shí)現(xiàn)這樣一個(gè)遞歸函數(shù),通過(guò)「同步移動(dòng)」兩個(gè)指針的方法來(lái)遍歷這棵樹(shù),p 指針和 q 指針一開(kāi)始都指向這棵樹(shù)的根,隨后 p 右移時(shí),q?左移,p?左移時(shí),q 右移。每次檢查當(dāng)前 p 和 q 節(jié)點(diǎn)的值是否相等,如果相等再判斷左右子樹(shù)是否對(duì)稱(chēng)。

          class?Solution?{
          ????public?boolean?isSymmetric(TreeNode root)?{
          ????????return?check(root, root);
          ????}

          ????public?boolean?check(TreeNode p, TreeNode q)?{
          ????????if?(p == null?&& q == null) {
          ????????????return?true;
          ????????}
          ????????if?(p == null?|| q == null) {
          ????????????return?false;
          ????????}
          ????????return?p.val == q.val && check(p.left, q.right) && check(p.right, q.left);
          ????}
          }


          對(duì)于這道題,你還有什么其他解法嗎?
          好了,今天的文章就到這里,如果覺(jué)得有所收獲,請(qǐng)順手點(diǎn)個(gè)在看或者轉(zhuǎn)發(fā)吧,你們的支持是我最大的動(dòng)力。


          上期推文:

          LeetCode1-100題匯總,希望對(duì)你有點(diǎn)幫助!

          瀏覽 38
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩中文字幕在线人成网站 | 学生妹一区二区三区 | 日韩欧美成人网站 | 成人无码电影333 | 搜国产黄色成人网站视频免费观看 |