国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【數(shù)據(jù)結(jié)構(gòu)】二叉樹篇|超清晰圖解和詳解:二叉樹的最近公共祖先

這篇具有很好參考價值的文章主要介紹了【數(shù)據(jù)結(jié)構(gòu)】二叉樹篇|超清晰圖解和詳解:二叉樹的最近公共祖先。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

【數(shù)據(jù)結(jié)構(gòu)】二叉樹篇|超清晰圖解和詳解:二叉樹的最近公共祖先,數(shù)據(jù)結(jié)構(gòu)|刷題專欄,數(shù)據(jù)結(jié)構(gòu),算法,java,二叉樹,樹

  • 博主簡介:努力學習的22級計算機科學與技術(shù)本科生一枚??
  • 博主主頁: @是瑤瑤子啦
  • 每日一言??: 你不能要求一片海洋,沒有風暴,那不是海洋,是泥塘——畢淑敏

一、題目

??236. 二叉樹的最近公共祖先

【數(shù)據(jù)結(jié)構(gòu)】二叉樹篇|超清晰圖解和詳解:二叉樹的最近公共祖先,數(shù)據(jù)結(jié)構(gòu)|刷題專欄,數(shù)據(jù)結(jié)構(gòu),算法,java,二叉樹,樹

二、題解

【數(shù)據(jù)結(jié)構(gòu)】二叉樹篇|超清晰圖解和詳解:二叉樹的最近公共祖先,數(shù)據(jù)結(jié)構(gòu)|刷題專欄,數(shù)據(jù)結(jié)構(gòu),算法,java,二叉樹,樹注意:祖先是包括自身的!

  • ??首先要明白,當root為p,q的最近祖先節(jié)點,只有下面3種情況:

    1. p,q在root分別存在于root的左右子樹中(異側(cè))——>root即為最近祖先節(jié)點
    2. p, q均在root的左側(cè)——>p/q即為最近祖先節(jié)點
    3. p, q均在root的右側(cè)——>同理
    【數(shù)據(jù)結(jié)構(gòu)】二叉樹篇|超清晰圖解和詳解:二叉樹的最近公共祖先,數(shù)據(jù)結(jié)構(gòu)|刷題專欄,數(shù)據(jù)結(jié)構(gòu),算法,java,二叉樹,樹

  • ??遞歸函數(shù)的定義public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q)在以root為根節(jié)點的樹中找并且返回p和q的最近的祖先節(jié)點。
    1.終止條件:

    • root == null;return null
    • root = = p 或者root = = q,直接返回p/q

    2.遞推工作:(到這里說明此時p和q要么在此次遞歸的root的同側(cè)或者異側(cè))left 用于記錄在左側(cè)進行尋找公共祖先(這里的遞歸函數(shù)作用就是單純找q/p節(jié)點并且找到就返回的作用了,當然你可以另外寫一個找節(jié)點的函數(shù),但是沒必要,因為定義的遞歸函數(shù)本身就能實現(xiàn)這個功能),right同理

  1. left和right均為null,說明root的左右都沒有p,q,那就不存在公共節(jié)點,返回Null(有點扯,按理來說,p,q肯定是存在的,但是特判一下也不虧)

  2. ?left和right均不空,說明在此時遞歸情況是:p,q在root異側(cè),那么直接返回root即可
    【數(shù)據(jù)結(jié)構(gòu)】二叉樹篇|超清晰圖解和詳解:二叉樹的最近公共祖先,數(shù)據(jù)結(jié)構(gòu)|刷題專欄,數(shù)據(jù)結(jié)構(gòu),算法,java,二叉樹,樹

    3. ?left不為空,right為空;right不為空,left為空。直接將不為空的那個返回即可!此時不為空的left/right指向的就是最近祖先節(jié)點。 【數(shù)據(jù)結(jié)構(gòu)】二叉樹篇|超清晰圖解和詳解:二叉樹的最近公共祖先,數(shù)據(jù)結(jié)構(gòu)|刷題專欄,數(shù)據(jù)結(jié)構(gòu),算法,java,二叉樹,樹

三、代碼

public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
        if(root == null || root == p || root == q){
            return root;
        }
        TreeNode left = lowestCommonAncestor(root.left, p, q);
        TreeNode right = lowestCommonAncestor(root.right, p, q);
        if(left != null && right !=null){
            return root;
        }else if(left == null){
            return right;
        }else if(right == null){
            return left;
        }else{
            return null;
        }
    }

??若有不懂的地方,歡迎隨時在評論區(qū)or私信找瑤瑤子交流討論??

【數(shù)據(jù)結(jié)構(gòu)】二叉樹篇|超清晰圖解和詳解:二叉樹的最近公共祖先,數(shù)據(jù)結(jié)構(gòu)|刷題專欄,數(shù)據(jù)結(jié)構(gòu),算法,java,二叉樹,樹

  • Java島冒險記【從小白到大佬之路】

  • LeetCode每日一題–進擊大廠

  • Go語言核心編程

  • 算法文章來源地址http://www.zghlxwxcb.cn/news/detail-650621.html

到了這里,關(guān)于【數(shù)據(jù)結(jié)構(gòu)】二叉樹篇|超清晰圖解和詳解:二叉樹的最近公共祖先的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 數(shù)據(jù)結(jié)構(gòu):手撕圖解二叉樹(含大量遞歸圖解)

    數(shù)據(jù)結(jié)構(gòu):手撕圖解二叉樹(含大量遞歸圖解)

    二叉樹的幾乎所有實現(xiàn)都是依靠遞歸實現(xiàn),遞歸的核心思路是把任何一個二叉樹看成根和左右子樹,而二叉樹遞歸的核心玩法就是把二叉樹的左右子樹再看成根,再找左右子樹,再看成根… 因此,解決二叉樹問題實際上要把二叉樹轉(zhuǎn)換成一個一個子樹的過程,找到一個一個的

    2024年02月15日
    瀏覽(26)
  • 數(shù)據(jù)結(jié)構(gòu)---手撕圖解二叉樹(含大量遞歸圖解)

    數(shù)據(jù)結(jié)構(gòu)---手撕圖解二叉樹(含大量遞歸圖解)

    二叉樹的幾乎所有實現(xiàn)都是依靠遞歸實現(xiàn),遞歸的核心思路是把任何一個二叉樹看成根和左右子樹,而二叉樹遞歸的核心玩法就是把二叉樹的左右子樹再看成根,再找左右子樹,再看成根… 因此,解決二叉樹問題實際上要把二叉樹轉(zhuǎn)換成一個一個子樹的過程,找到一個一個的

    2024年02月16日
    瀏覽(25)
  • 【算法與數(shù)據(jù)結(jié)構(gòu)】二叉樹的三種遍歷代碼實現(xiàn)(下)—— 非遞歸方式實現(xiàn)(大量圖解)

    【算法與數(shù)據(jù)結(jié)構(gòu)】二叉樹的三種遍歷代碼實現(xiàn)(下)—— 非遞歸方式實現(xiàn)(大量圖解)

    ?上篇: 【算法與數(shù)據(jù)結(jié)構(gòu)】二叉樹的三種遍歷代碼實現(xiàn)(上)—— 用遞歸序知識點講解_Hacynn的博客-CSDN博客 https://blog.csdn.net/zzzzzhxxx/article/details/133609612?spm=1001.2014.3001.5502 目錄 前言 1、先序遍歷 1.1、詳細圖解描述 1.2、先序遍歷非遞歸代碼實現(xiàn)? 2、中序遍歷 2.1、詳細圖解描

    2024年02月08日
    瀏覽(19)
  • 數(shù)據(jù)結(jié)構(gòu)刷題篇 之 【力扣二叉樹基礎(chǔ)OJ】詳細講解(含每道題鏈接及遞歸圖解)

    數(shù)據(jù)結(jié)構(gòu)刷題篇 之 【力扣二叉樹基礎(chǔ)OJ】詳細講解(含每道題鏈接及遞歸圖解)

    有沒有一起拼用銀行卡的,取錢的時候我用,存錢的時候你用 難度等級:? 直達鏈接:相同的樹 難度等級:? 直達鏈接:單值二叉樹 難度等級:?? 直達鏈接:對稱二叉樹 難度等級:??? 直達鏈接:二叉樹的前序遍歷 難度等級:???? 直達鏈接:另一顆子樹 注:

    2024年04月16日
    瀏覽(50)
  • 【數(shù)據(jù)結(jié)構(gòu)】隊列篇| 超清晰圖解和詳解:循環(huán)隊列模擬、用棧實現(xiàn)隊列、用隊列實現(xiàn)棧

    【數(shù)據(jù)結(jié)構(gòu)】隊列篇| 超清晰圖解和詳解:循環(huán)隊列模擬、用棧實現(xiàn)隊列、用隊列實現(xiàn)棧

    博主簡介: 努力學習的22級計算機科學與技術(shù)本科生一枚?? 博主主頁: @是瑤瑤子啦 每日一言??: 每一個不曾起舞的日子,都是對生命的辜負?!岵???622. 設(shè)計循環(huán)隊列 ???? 思路: ??數(shù)據(jù)結(jié)構(gòu): 使用數(shù)組為數(shù)據(jù)結(jié)構(gòu),且采用犧牲一個空間的方法來包裝判空和判滿的

    2024年02月11日
    瀏覽(29)
  • 【數(shù)據(jù)結(jié)構(gòu)-二叉樹】二叉樹

    【數(shù)據(jù)結(jié)構(gòu)-二叉樹】二叉樹

    ??????歡迎來到我的博客,很高興能夠在這里和您見面!希望您在這里可以感受到一份輕松愉快的氛圍,不僅可以獲得有趣的內(nèi)容和知識,也可以暢所欲言、分享您的想法和見解。 推薦:kuan 的首頁,持續(xù)學習,不斷總結(jié),共同進步,活到老學到老 導(dǎo)航 檀越劍指大廠系列:全面總

    2024年02月07日
    瀏覽(35)
  • 數(shù)據(jù)結(jié)構(gòu):搜索二叉樹 | 平衡二叉樹

    數(shù)據(jù)結(jié)構(gòu):搜索二叉樹 | 平衡二叉樹

    博客寫的代碼都放在這里:gitee倉庫鏈接 1.二叉搜索樹 1.1.基本概念 二叉搜索樹又稱二叉排序樹, 可以為空,如果不為空具有以下性質(zhì)的二叉樹 : 若它的左子樹不為空,則左子樹上所有節(jié)點的值都小于根節(jié)點的值 若它的右子樹不為空,則右子樹上所有節(jié)點的值都大于根節(jié)點的

    2024年01月23日
    瀏覽(36)
  • 【數(shù)據(jù)結(jié)構(gòu)和算法】--- 二叉樹(3)--二叉樹鏈式結(jié)構(gòu)的實現(xiàn)(1)

    【數(shù)據(jù)結(jié)構(gòu)和算法】--- 二叉樹(3)--二叉樹鏈式結(jié)構(gòu)的實現(xiàn)(1)

    在學習二叉樹的基本操作前,需先要創(chuàng)建一棵二叉樹,然后才能學習其相關(guān)的基本操作。由于現(xiàn)在大家對二叉樹結(jié)構(gòu)掌握還不夠深入,且為了方便后面的介紹,此處手動快速創(chuàng)建一棵簡單的二叉樹,快速進入二叉樹操作學習,等二叉樹結(jié)構(gòu)了解的差不多時,我們反過頭再來研

    2024年01月25日
    瀏覽(29)
  • 【數(shù)據(jù)結(jié)構(gòu)】二叉樹——順序結(jié)構(gòu)

    【數(shù)據(jù)結(jié)構(gòu)】二叉樹——順序結(jié)構(gòu)

    由于每個節(jié)點都 只有一個父節(jié)點 ,所以我們可通過雙親來表示一棵樹。具體方式通過 數(shù)組的形式 實現(xiàn)。 根節(jié)點的下標為0 按照層序從上到下排序 每層從左向右遞增 表示形式: 二維數(shù)組 數(shù)據(jù)的列標為0 ,只需確定行標,即可鎖定位置 根節(jié)點的父節(jié)點下標為 -1 列標為1存父節(jié)

    2024年02月02日
    瀏覽(20)
  • 【數(shù)據(jù)結(jié)構(gòu)】二叉樹——鏈式結(jié)構(gòu)

    【數(shù)據(jù)結(jié)構(gòu)】二叉樹——鏈式結(jié)構(gòu)

    目錄 ?一、前置聲明 二、二叉樹的遍歷 2.1?前序、中序以及后序遍歷 2.2?層序遍歷 三、節(jié)點個數(shù)以及高度 3.1?節(jié)點個數(shù) 3.2?葉子節(jié)點個數(shù) 3.3?第k層節(jié)點個數(shù) 3.4?二叉樹的高度/深度 3.5?查找值為x的節(jié)點 四、二叉樹的創(chuàng)建和銷毀 4.1?構(gòu)建二叉樹 4.2?二叉樹銷毀 4.3?判斷二叉樹

    2024年02月16日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包