最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

劍指Offer之Java算法習(xí)題精講二叉樹專項(xiàng)解析

 更新時(shí)間:2022年03月18日 10:52:44   作者:明天一定.  
跟著思路走,之后從簡(jiǎn)單題入手,反復(fù)去看,做過之后可能會(huì)忘記,之后再做一次,記不住就反復(fù)做,反復(fù)尋求思路和規(guī)律,慢慢積累就會(huì)發(fā)現(xiàn)質(zhì)的變化

題目一

解法

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    int ans;
    int pre;
    public int getMinimumDifference(TreeNode root) {
        ans = Integer.MAX_VALUE;
        pre = -1;
        method(root);
        return ans;
    }
    public void method(TreeNode root){
        if(root==null) return;
        method(root.left);
        if(pre==-1){
            pre = root.val;
        }else{
            ans = Math.min(ans,root.val-pre);
            pre = root.val;
        }
        method(root.right);
    }
}

題目二

?解法

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    int ans = 0;
    public int findTilt(TreeNode root) {
        method(root);
        return ans;
    }
    public int method(TreeNode root){
        if(root==null) return 0;
        int l = method(root.left);
        int r = method(root.right);
        ans += Math.abs(l-r);
        return l+r+root.val;
    }
}

題目三

?解法

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public boolean isSubtree(TreeNode root, TreeNode subRoot) {
        return dfs(root,subRoot);
    }
    public boolean dfs(TreeNode root, TreeNode subRoot){
        if(root==null) return false;
        return cheack(root,subRoot)||dfs(root.left,subRoot)||dfs(root.right,subRoot);
    }
    public boolean cheack(TreeNode root, TreeNode subRoot){
        if(root==null&&subRoot==null) return true;
        if(root==null||subRoot==null||root.val!=subRoot.val) return false;
        return cheack(root.left,subRoot.left)&&cheack(root.right,subRoot.right);
    }
}

題目四

?解法

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public boolean isSameTree(TreeNode p, TreeNode q) {
        if(p==null&&q==null) return true;
        if(p==null||q==null||q.val!=p.val) return false;
        return isSameTree(p.left,q.left)&&isSameTree(p.right,q.right);
    }
}

到此這篇關(guān)于劍指Offer之Java算法習(xí)題精講二叉樹專項(xiàng)解析的文章就介紹到這了,更多相關(guān)Java 二叉樹內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java實(shí)現(xiàn)表達(dá)式二叉樹

    Java實(shí)現(xiàn)表達(dá)式二叉樹

    這篇文章主要為大家詳細(xì)介紹了如何利用Java實(shí)現(xiàn)表達(dá)式二叉樹,感興趣的小伙伴們可以參考一下
    2016-08-08
  • javacv開發(fā)詳解之調(diào)用本機(jī)攝像頭視頻

    javacv開發(fā)詳解之調(diào)用本機(jī)攝像頭視頻

    這篇文章主要介紹了javacv開發(fā)詳解之調(diào)用本機(jī)攝像頭視頻,對(duì)javacv感興趣的同學(xué),可以參考下
    2021-04-04
  • BeanUtils.copyProperties擴(kuò)展--實(shí)現(xiàn)String轉(zhuǎn)Date

    BeanUtils.copyProperties擴(kuò)展--實(shí)現(xiàn)String轉(zhuǎn)Date

    這篇文章主要介紹了BeanUtils.copyProperties擴(kuò)展--實(shí)現(xiàn)String轉(zhuǎn)Date操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Intellij搭建springmvc常見問題解決方案

    Intellij搭建springmvc常見問題解決方案

    這篇文章主要介紹了Intellij搭建springmvc常見問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • IDEA 2020.3 更新了機(jī)器學(xué)習(xí)都整上了

    IDEA 2020.3 更新了機(jī)器學(xué)習(xí)都整上了

    IDEA 歡迎窗口全新升級(jí),首頁增加三個(gè)選項(xiàng)卡,一個(gè)用于設(shè)置 IDE 界面的 Customize,一個(gè)用于插件安裝的 Plugins,一個(gè)于訪問幫助和學(xué)習(xí)資源的 Learn IntelliJ IDEA,另外包括之前用于管理項(xiàng)目的 Projects,需要的朋友可以參考下
    2020-12-12
  • java 非常好用的反射框架Reflections介紹

    java 非常好用的反射框架Reflections介紹

    這篇文章主要介紹了java 反射框架Reflections的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • Mybatis-Plus select不列出全部字段的方法

    Mybatis-Plus select不列出全部字段的方法

    這篇文章主要介紹了Mybatis-Plus select不列出全部字段的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Java中byte、byte數(shù)組與int、long的轉(zhuǎn)換詳解

    Java中byte、byte數(shù)組與int、long的轉(zhuǎn)換詳解

    這篇文章分別給大家介紹了Java中byte和int之間的轉(zhuǎn)換、Java中 byte數(shù)組和int之間的轉(zhuǎn)換、Java中byte數(shù)組和long之間的轉(zhuǎn)換以及整理了整體工具類的源碼,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-02-02
  • Java結(jié)合Kotlin實(shí)現(xiàn)寶寶年齡計(jì)算

    Java結(jié)合Kotlin實(shí)現(xiàn)寶寶年齡計(jì)算

    這篇文章主要為大家介紹了Java結(jié)合Kotlin實(shí)現(xiàn)寶寶年齡計(jì)算示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Java獲取IP地址以及MAC地址的示例代碼

    Java獲取IP地址以及MAC地址的示例代碼

    IP地址是用于在網(wǎng)絡(luò)上識(shí)別設(shè)備的唯一地址,而MAC地址是設(shè)備的物理地址,本文主要介紹了Java獲取IP地址以及MAC地址的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-04-04

最新評(píng)論

嘉荫县| 景东| 九龙城区| 分宜县| 武夷山市| 永修县| 广安市| 泰兴市| 贺州市| 大宁县| 平南县| 旺苍县| 开鲁县| 泗阳县| 桦甸市| 连城县| 万安县| 承德县| 清徐县| 兴国县| 鄂尔多斯市| 嫩江县| 台南市| 含山县| 广西| 澄江县| 商城县| 杭州市| 小金县| 长泰县| 额尔古纳市| 宕昌县| 莱西市| 寿阳县| 石棉县| 白水县| 富裕县| 甘孜县| 商丘市| 安国市| 邳州市|