日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Leetcode113路径总和2

發(fā)布時(shí)間:2025/4/5 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Leetcode113路径总和2 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目

給定一個(gè)二叉樹和一個(gè)目標(biāo)和,找到所有從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)路徑總和等于給定目標(biāo)和的路徑
說(shuō)明: 葉子節(jié)點(diǎn)是指沒(méi)有子節(jié)點(diǎn)的節(jié)點(diǎn)。
示例:
給定如下二叉樹,以及目標(biāo)和 sum = 22,

5/ \4 8/ / \11 13 4/ \ / \7 2 5 1

返回:

[[5,4,11,2],[5,8,4,5] ]

思路

前序遍歷(深度搜索)二叉樹,遍歷到葉節(jié)點(diǎn)保存為一條路徑,同時(shí)保存遍歷的值之和。

前序遍歷使用的是遞歸實(shí)現(xiàn)。

vector<vector> result用來(lái)存儲(chǔ)滿足條件路徑的數(shù)組
路徑結(jié)果保存的條件是:節(jié)點(diǎn)為葉節(jié)點(diǎn),同時(shí)路徑和path_value等于sum

代碼

/*** 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 { public:vector<vector<int>> pathSum(TreeNode* root, int sum) {vector<vector<int>> result;//存儲(chǔ)滿足條件路徑的數(shù)組vector<int> path;//路徑存儲(chǔ)int path_value=0;//路徑的值pre_order(root,path_value,sum,path,result);return result;//返回result}private:void pre_order(TreeNode *node, int &path_value,int sum,std::vector<int> &path,std::vector<std::vector<int>> &result){if(!node)//節(jié)點(diǎn)為空return;//遍歷一個(gè)節(jié)點(diǎn)更新一次路徑path_value+=node->val;//值path.push_back(node->val);//路徑保存if(!node->left&&!node->right&&path_value==sum)result.push_back(path);//路徑添加到結(jié)果數(shù)組pre_order(node->left,path_value,sum,path,result);pre_order(node->right,path_value,sum,path,result);path_value-=node->val;path.pop_back();//遍歷完成,該結(jié)點(diǎn)從路徑中彈出 } };

題目來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/path-sum-ii點(diǎn)擊訪問(wèn)原題目

總結(jié)

以上是生活随笔為你收集整理的Leetcode113路径总和2的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。