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

(樹) 劍指 Offer 26. 樹的子結(jié)構(gòu) ——【Leetcode每日一題】

這篇具有很好參考價值的文章主要介紹了(樹) 劍指 Offer 26. 樹的子結(jié)構(gòu) ——【Leetcode每日一題】。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

?劍指 Offer 26. 樹的子結(jié)構(gòu)

難度:中等

輸入兩棵二叉樹 AB,判斷 B 是不是 A 的子結(jié)構(gòu)。(約定空樹不是任意一個樹的子結(jié)構(gòu))

BA 的子結(jié)構(gòu), 即 A 中有出現(xiàn)和B相同的結(jié)構(gòu)和節(jié)點值。

例如:
給定的樹 A:

     3

    / \

   4   5

  / \

 1   2

給定的樹 B

   4 

  /

 1

返回 true,因為 BA 的一個子樹擁有相同的結(jié)構(gòu)和節(jié)點值。

示例 1:

輸入:A = [1,2,3], B = [3,1]
輸出:false

示例 2:

輸入:A = [3,4,5,1,2], B = [4,1]
輸出:true

限制

  • 0 <= 節(jié)點個數(shù) <= 10000

??思路:遞歸

二叉樹 BA 的子結(jié)構(gòu)的情況一共有三種,滿足其中一種即可:

  1. 子結(jié)構(gòu) B 的起點為 A 的根節(jié)點,即從 A 的根節(jié)點開始和 B 比較, 調(diào)用函數(shù) isSubStree:
    • 不相等,則返回 false;
    • 相等,則再比較 左子樹和右子樹都是否相等,都相等,才返回 true
  2. 子結(jié)構(gòu) BA 的左子樹中,即 B 的起點隱藏在 A 的左子樹中,此時調(diào)用函數(shù) isSubStructure;
  3. 子結(jié)構(gòu) BA 的右子樹中,即 B 的起點隱藏在 A 的右子樹中,此時調(diào)用函數(shù) isSubStructure。

??代碼:(C++、Java)

C++

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
private:
    bool isSubStree (TreeNode* root1, TreeNode* root2){
        if(root2 == nullptr) return true;
        if(root1 == nullptr) return false;
        if(root1->val != root2->val) return false;
        return isSubStree(root1->left, root2->left) && isSubStree(root1->right, root2->right);
    }
public:
    bool isSubStructure(TreeNode* A, TreeNode* B) {
        if(A == nullptr || B == nullptr) return false;
        return isSubStree(A, B) || isSubStructure(A->left, B) || isSubStructure(A->right, B);
    }
};

Java

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    private boolean isSubStree (TreeNode root1, TreeNode root2){//從當前根節(jié)點直接比較
        if(root2 == null) return true;
        if(root1 == null) return false;
        if(root1.val != root2.val) return false;
        return isSubStree(root1.left, root2.left) && isSubStree(root1.right, root2.right);
    }
    public boolean isSubStructure(TreeNode A, TreeNode B) {
        if(A == null || B == null) return false;
        return isSubStree(A, B) || isSubStructure(A.left, B) || isSubStructure(A.right, B);
    }
}
?? 運行結(jié)果:

(樹) 劍指 Offer 26. 樹的子結(jié)構(gòu) ——【Leetcode每日一題】,LeetCode,leetcode,算法,職場和發(fā)展

?? 復雜度分析:
  • 時間復雜度 O ( n m ) O(nm) O(nm),其中 nm 分別表示兩棵樹的節(jié)點數(shù),我們要對每個 A 樹節(jié)點進行訪問,最壞情況下每次都要比較 B 樹節(jié)點的次數(shù)。
  • 空間復雜度 O ( n + m ) O(n + m) O(n+m),兩個遞歸棧深度相乘(當樹退化成鏈表時,遞歸棧最大)。

題目來源:力扣。

放棄一件事很容易,每天能堅持一件事一定很酷,一起每日一題吧!
關注我LeetCode主頁 / CSDN—力扣專欄,每日更新!文章來源地址http://www.zghlxwxcb.cn/news/detail-616928.html

注: 如有不足,歡迎指正!

到了這里,關于(樹) 劍指 Offer 26. 樹的子結(jié)構(gòu) ——【Leetcode每日一題】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關文章

  • 二叉樹(中)+Leetcode每日一題——“數(shù)據(jù)結(jié)構(gòu)與算法”“劍指Offer55-I. 二叉樹的深度”“100.相同的樹”“965.單值二叉樹”

    二叉樹(中)+Leetcode每日一題——“數(shù)據(jù)結(jié)構(gòu)與算法”“劍指Offer55-I. 二叉樹的深度”“100.相同的樹”“965.單值二叉樹”

    各位CSDN的uu們你們好呀,今天繼續(xù)數(shù)據(jù)結(jié)構(gòu)與算法專欄中的二叉樹,下面,讓我們進入二叉樹的世界吧?。?! 二叉樹(上)——“數(shù)據(jù)結(jié)構(gòu)與算法”_認真學習的小雅蘭.的博客-CSDN博客 二叉樹鏈式結(jié)構(gòu)的實現(xiàn) 二叉樹鏈式結(jié)構(gòu)的實現(xiàn) 求二叉樹的高度 但是這種寫法有很大的問題

    2024年02月17日
    瀏覽(32)
  • Leetcode-每日一題【劍指 Offer 27. 二叉樹的鏡像】

    Leetcode-每日一題【劍指 Offer 27. 二叉樹的鏡像】

    請完成一個函數(shù),輸入一個二叉樹,該函數(shù)輸出它的鏡像。 例如輸入: ? ? ?4 ? ?/ ? ? 2 ? ? 7 ?/ ? / 1 ? 3 6 ? 9 鏡像輸出: ? ? ?4 ? ?/ ? ? 7 ? ? 2 ?/ ? / 9 ? 6 3? ?1 示例 1: 輸入: root = [4,2,7,1,3,6,9] 輸出: [4,7,2,9,6,3,1] 限制: 0 = 節(jié)點個數(shù) = 1000 1.題目要求我們設

    2024年02月13日
    瀏覽(30)
  • (樹) 劍指 Offer 27. 二叉樹的鏡像 ——【Leetcode每日一題】

    (樹) 劍指 Offer 27. 二叉樹的鏡像 ——【Leetcode每日一題】

    難度:簡單 請完成一個函數(shù),輸入一個二叉樹,該函數(shù)輸出它的鏡像。 例如輸入: 鏡像輸出: 示例 1: 輸入:root = [4,2,7,1,3,6,9] 輸出:[4,7,2,9,6,3,1] 限制 : 0 = 節(jié)點個數(shù) = 1000 注意 :本題與 226. 翻轉(zhuǎn)二叉樹 相同。 ??思路:遞歸 我們從根節(jié)點開始,遞歸地對樹進行遍歷: 如果

    2024年02月13日
    瀏覽(27)
  • 【LeetCode】劍指 Offer(26)

    【LeetCode】劍指 Offer(26)

    目錄 題目:劍指 Offer 51. 數(shù)組中的逆序?qū)?- 力扣(Leetcode) 題目的接口: 解題思路: 代碼: 過啦?。?! 寫在最后: 這一道題,我的思路是用雙指針暴力求解, 但這個數(shù)組長度,O(N^2)的時間復雜度肯定是不可能把所有樣例跑完, 看了大佬的思路,用的是歸并排序,(如果不

    2023年04月11日
    瀏覽(21)
  • 圖神經(jīng)網(wǎng)絡論文筆記(一)——北郵:基于學習解糾纏因果子結(jié)構(gòu)的圖神經(jīng)網(wǎng)絡去偏

    圖神經(jīng)網(wǎng)絡論文筆記(一)——北郵:基于學習解糾纏因果子結(jié)構(gòu)的圖神經(jīng)網(wǎng)絡去偏

    作者 :范少華 研究方向 :圖神經(jīng)網(wǎng)絡 論文標題 : 基于學習解耦因果子結(jié)構(gòu)的圖神經(jīng)網(wǎng)絡去偏 論文鏈接 :https://arxiv.org/pdf/2209.14107.pdf ? ? ? ? https://doi.org/10.48550/arXiv.2209.14107 ??大多數(shù)圖神經(jīng)網(wǎng)絡(GNNs)通過學習輸入圖和標簽之間的相關性來預測不可見圖的標簽。然而,

    2024年02月07日
    瀏覽(12)
  • Leetcode 劍指 Offer II 038. 每日溫度

    題目難度: 中等 原題鏈接 今天繼續(xù)更新 Leetcode 的劍指 Offer(專項突擊版)系列, 大家在公眾號 算法精選 里回復 劍指offer2 就能看到該系列當前連載的所有文章了, 記得關注哦~ 請根據(jù)每日 氣溫 列表 temperatures ,重新生成一個列表,要求其對應位置的輸出為:要想觀測到更高的

    2024年02月14日
    瀏覽(20)
  • Leetcode-每日一題【劍指 Offer 29. 順時針打印矩陣】

    Leetcode-每日一題【劍指 Offer 29. 順時針打印矩陣】

    輸入一個矩陣,按照從外向里以順時針的順序依次打印出每一個數(shù)字。 示例 1: 輸入: matrix = [[1,2,3],[4,5,6],[7,8,9]] 輸出: [1,2,3,6,9,8,7,4,5] 示例 2: 輸入: matrix =?[[1,2,3,4],[5,6,7,8],[9,10,11,12]] 輸出: [1,2,3,4,8,12,11,10,9,5,6,7] 限制: 0 = matrix.length = 100 0 = matrix[i].length?= 100 1.題目要求

    2024年02月13日
    瀏覽(28)
  • (鏈表) 劍指 Offer 24. 反轉(zhuǎn)鏈表 ——【Leetcode每日一題】

    (鏈表) 劍指 Offer 24. 反轉(zhuǎn)鏈表 ——【Leetcode每日一題】

    難度:簡單 定義一個函數(shù),輸入一個鏈表的頭節(jié)點,反轉(zhuǎn)該鏈表并輸出反轉(zhuǎn)后鏈表的頭節(jié)點。 示例: 輸入 : 1-2-3-4-5-NULL 輸出 : 5-4-3-2-1-NULL 限制 : 0 = 節(jié)點個數(shù) = 5000 注意:本題與 206. 反轉(zhuǎn)鏈表 相同。 ??思路: 法一:遞歸 可以將本問題分解成子問題: 1 - (剩余部分的反轉(zhuǎn))

    2024年02月15日
    瀏覽(30)
  • Leetcode-每日一題【劍指 Offer 16. 數(shù)值的整數(shù)次方】

    Leetcode-每日一題【劍指 Offer 16. 數(shù)值的整數(shù)次方】

    實現(xiàn)?pow(x,?n)?,即計算 x 的 n 次冪函數(shù)(即,xn)。不得使用庫函數(shù),同時不需要考慮大數(shù)問題。 示例 1: 輸入: x = 2.00000, n = 10 輸出: 1024.00000 示例 2: 輸入: x = 2.10000, n = 3 輸出: 9.26100 示例 3: 輸入: x = 2.00000, n = -2 輸出: 0.25000 解釋: 2-2 = 1/22 = 1/4 = 0.25 提示: -10

    2024年02月13日
    瀏覽(24)
  • (字符串 ) 劍指 Offer 05. 替換空格 ——【Leetcode每日一題】

    (字符串 ) 劍指 Offer 05. 替換空格 ——【Leetcode每日一題】

    難度:簡單 請實現(xiàn)一個函數(shù),把字符串 s 中的每個 空格 替換成 “ %20 ”。 示例 1: 輸入:s = “We are happy.” 輸出:“We%20are%20happy.” 限制 : 0 = s 的長度 = 10000 ??思路:雙指針法 如果想把這道題目做到 極致 ,就不要只用額外的輔助空間了! 首先擴充數(shù)組到每個空格替換

    2024年02月08日
    瀏覽(30)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包