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

leetcode 257. 二叉樹的所有路徑

這篇具有很好參考價(jià)值的文章主要介紹了leetcode 257. 二叉樹的所有路徑。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

2023.7.5

leetcode 257. 二叉樹的所有路徑,leetcode專欄,leetcode,算法,c++,數(shù)據(jù)結(jié)構(gòu)

? ? ? ? ?這題需要用到遞歸+回溯,也是我第一次接觸回溯這個(gè)概念。?

? ? ? ? 大致思路是:

????????在reversal函數(shù)中,首先將當(dāng)前節(jié)點(diǎn)的值加入到路徑path中。然后判斷當(dāng)前節(jié)點(diǎn)是否為葉子節(jié)點(diǎn),即沒有左右子節(jié)點(diǎn)。如果是葉子節(jié)點(diǎn),將路徑轉(zhuǎn)化為字符串并保存到result中。

????????接下來,分別遞歸處理當(dāng)前節(jié)點(diǎn)的左子節(jié)點(diǎn)和右子節(jié)點(diǎn)。遞歸調(diào)用reversal函數(shù)時(shí),將左子節(jié)點(diǎn)或右子節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn),并傳遞更新后的路徑pathresult。在遞歸調(diào)用之后,需要進(jìn)行回溯操作,即將剛添加的節(jié)點(diǎn)值從路徑path中移除,以保證在遍歷其他路徑時(shí)路徑的正確性。

? ? ? ??總體而言,通過遞歸的深度優(yōu)先搜索算法,遍歷了給定二叉樹的所有路徑,并將路徑保存在一個(gè)字符串的向量中。 下面上代碼:

class Solution {
public:
    void reversal(TreeNode* cur, vector<int>& path, vector<string>& result)
          {
              path.push_back(cur->val);
              if(cur->left==nullptr && cur->right==nullptr) //葉子節(jié)點(diǎn) 將路徑保存
              {
                  string spath;
                  for(int i=0; i<path.size()-1; i++)
                  {
                      spath += to_string(path[i]); //需要將數(shù)組的整型值->字符串型值
                      spath += "->";
                  }
                  spath += to_string(path[path.size()-1]);
                  result.push_back(spath);
              }
              if(cur->left)
              {
                  reversal(cur->left,path,result);
                  path.pop_back();//回溯
              }
              if(cur->right)
              {
                  reversal(cur->right,path,result);
                  path.pop_back();//回溯
              }
          }

    vector<string> binaryTreePaths(TreeNode* root) {
          vector<string> result;
          vector<int> path;
          reversal(root, path, result);
          return result;
    }
};

? ? ? ? 需要注意reversal函數(shù)傳遞參數(shù)的兩個(gè)vector 需要加&符號(hào),以保證是在原vector上修改。文章來源地址http://www.zghlxwxcb.cn/news/detail-521928.html

到了這里,關(guān)于leetcode 257. 二叉樹的所有路徑的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Day17|leetcode 110.平衡二叉樹、257.二叉樹的所有路徑、404.左葉子之和

    Day17|leetcode 110.平衡二叉樹、257.二叉樹的所有路徑、404.左葉子之和

    題目鏈接:110. 平衡二叉樹 - 力扣(LeetCode) 視頻鏈接:后序遍歷求高度,高度判斷是否平衡 | LeetCode:110.平衡二叉樹_嗶哩嗶哩_bilibili 平衡二叉樹定義為:一個(gè)二叉樹每個(gè)節(jié)點(diǎn) 的左右兩個(gè)子樹的高度差的絕對(duì)值不超過1。 本題就是求左右子樹的高度差,如果差值=1,就是平衡

    2024年02月11日
    瀏覽(47)
  • 力扣 257. 二叉樹的所有路徑

    力扣 257. 二叉樹的所有路徑

    題目來源:https://leetcode.cn/problems/binary-tree-paths/description/ ? ?C++題解1:使用遞歸,聲明了全局變量result,遇到葉子節(jié)點(diǎn)就將字符串添加到result中。 遞歸三步法: 1. 確認(rèn)傳入?yún)?shù):當(dāng)前節(jié)點(diǎn)+已有路徑(字符串); 2. 確認(rèn)終止條件:遇到葉子節(jié)點(diǎn),即左右節(jié)點(diǎn)都為空時(shí),將當(dāng)前

    2024年02月11日
    瀏覽(20)
  • day17 | 110.平衡二叉樹、 257. 二叉樹的所有路徑、 404.左葉子之和

    目錄: 題目鏈接: https://leetcode.cn/problems/balanced-binary-tree/ https://leetcode.cn/problems/binary-tree-paths/ 110.?平衡二叉樹 給定一個(gè)二叉樹,判斷它是否是高度平衡的二叉樹。 本題中,一棵高度平衡二叉樹定義為: 一個(gè)二叉樹每個(gè)節(jié)點(diǎn)?的左右兩個(gè)子樹的高度差的絕對(duì)值不超過 1 。 示

    2024年02月08日
    瀏覽(30)
  • LeetCode刷題--- 二叉樹的所有路徑

    LeetCode刷題--- 二叉樹的所有路徑

    個(gè)人主頁:元清加油_【C++】,【C語言】,【數(shù)據(jù)結(jié)構(gòu)與算法】-CSDN博客 個(gè)人專欄 力扣遞歸算法題 ? ? ? 【 ? ? 】 【C++】 ? ? ? ? ? ? ? ? ?【 ? 】 數(shù)據(jù)結(jié)構(gòu)與算法 ? ? ? 【 ? ?】 前言:這個(gè)專欄主要講述遞歸遞歸、搜索與回溯算法,所以下面題目主要也是這些算法做的

    2024年01月19日
    瀏覽(20)
  • 算法刷題Day 17 平衡二叉樹+二叉樹的所有路徑+左葉子之和

    計(jì)算左右兩棵子樹的高度,如果有一個(gè)高度是-1(有一棵子樹不平衡),直接返回-1,否則計(jì)算高度差,判斷是否不平衡 使用 回溯 的方法,每次處理一個(gè)節(jié)點(diǎn)之前要把它push進(jìn)table里,處理完之后又要把它pop出來 處理一個(gè)節(jié)點(diǎn)時(shí),要判斷它是否是左節(jié)點(diǎn)(需要父節(jié)點(diǎn),可以通

    2024年02月15日
    瀏覽(32)
  • LeetCode算法二叉樹—222. 完全二叉樹的節(jié)點(diǎn)個(gè)數(shù)

    LeetCode算法二叉樹—222. 完全二叉樹的節(jié)點(diǎn)個(gè)數(shù)

    目錄 222. 完全二叉樹的節(jié)點(diǎn)個(gè)數(shù) - 力扣(LeetCode) 代碼: 運(yùn)行結(jié)果:? 給你一棵 ?完全二叉樹 ?的根節(jié)點(diǎn)? root ?,求出該樹的節(jié)點(diǎn)個(gè)數(shù)。 完全二叉樹?的定義如下:在完全二叉樹中,除了最底層節(jié)點(diǎn)可能沒填滿外,其余每層節(jié)點(diǎn)數(shù)都達(dá)到最大值,并且最下面一層的節(jié)點(diǎn)都集

    2024年02月07日
    瀏覽(30)
  • 數(shù)據(jù)結(jié)構(gòu)與算法之二叉樹: Leetcode 111. 二叉樹的最小深度 (Typescript版)

    二叉樹的最小深度 https://leetcode.cn/problems/minimum-depth-of-binary-tree/ 描述 就 給定一個(gè)二叉樹,找出其最小深度。 最小深度是從根節(jié)點(diǎn)到最近葉子節(jié)點(diǎn)的最短路徑上的節(jié)點(diǎn)數(shù)量。 說明:葉子節(jié)點(diǎn)是指沒有子節(jié)點(diǎn)的節(jié)點(diǎn)。 示例 1 示例 2 提示 樹中節(jié)點(diǎn)數(shù)的范圍在 [0, 1 0 5 10^5 1 0 5 ] 內(nèi)

    2024年02月06日
    瀏覽(29)
  • 算法leetcode|94. 二叉樹的中序遍歷(多語言實(shí)現(xiàn))

    算法leetcode|94. 二叉樹的中序遍歷(多語言實(shí)現(xiàn))

    給定一個(gè)二叉樹的根節(jié)點(diǎn) root ,返回 它的 中序 遍歷 。 樹中節(jié)點(diǎn)數(shù)目在范圍 [0, 100] 內(nèi) -100 = Node.val = 100 面對(duì)這道算法題目,二當(dāng)家的再次陷入了沉思。 二叉樹的中序遍歷和前序遍歷,后續(xù)遍歷是二叉樹常用的遍歷方式。 使用遞歸方式比循環(huán)非遞歸方式更加簡單,直觀,易于

    2024年02月04日
    瀏覽(20)
  • 【算法與數(shù)據(jù)結(jié)構(gòu)】236、LeetCode二叉樹的最近公共祖先

    【算法與數(shù)據(jù)結(jié)構(gòu)】236、LeetCode二叉樹的最近公共祖先

    所有的LeetCode題解索引,可以看這篇文章——【算法和數(shù)據(jù)結(jié)構(gòu)】LeetCode題解。 ?? 思路分析 : 根據(jù)定義,最近祖先節(jié)點(diǎn)需要遍歷節(jié)點(diǎn)的左右子樹,然后才能知道是否為最近祖先節(jié)點(diǎn)。 那么這種需求是先遍歷左右節(jié)點(diǎn),然后遍歷中間節(jié)點(diǎn),屬于左右中的后序遍歷模式 。因此

    2024年02月09日
    瀏覽(27)
  • 算法訓(xùn)練day16Leetcode104二叉樹最大深度111二叉樹最小深度222完全二叉樹的節(jié)點(diǎn)個(gè)數(shù)

    https://www.bilibili.com/video/BV1Gd4y1V75u/?vd_source=8272bd48fee17396a4a1746c256ab0ae 用遞歸,但是什么順序沒想清楚 二叉樹節(jié)點(diǎn)的深度:指從根節(jié)點(diǎn)到該節(jié)點(diǎn)的最長簡單路徑邊的條數(shù)或者節(jié)點(diǎn)數(shù)(取決于深度從0開始還是從1開始) 二叉樹節(jié)點(diǎn)的高度:指從該節(jié)點(diǎn)到葉子節(jié)點(diǎn)的最長簡單路徑邊

    2024年01月16日
    瀏覽(28)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包