当前位置: 首页 > news >正文

中国建设银行国际互联网站手机网站怎么优化关键词

中国建设银行国际互联网站,手机网站怎么优化关键词,专业的临沂网站优化,无锡互联网公司排名❓ 剑指 Offer 34. 二叉树中和为某一值的路径 难度:中等 给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 示例 1: 输入&#xff1a…

❓ 剑指 Offer 34. 二叉树中和为某一值的路径

难度:中等

给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。

叶子节点 是指没有子节点的节点。

示例 1:

在这里插入图片描述

输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22
输出:[[5,4,11,2],[5,8,4,5]]

示例 2:

在这里插入图片描述

输入:root = [1,2,3], targetSum = 5
输出:[]

示例 3:

输入:root = [1,2], targetSum = 0
输出:[]

提示

  • 树中节点总数在范围 [0, 5000]
  • -1000 <= Node.val <= 1000
  • -1000 <= targetSum <= 1000

注意:本题与 113. 路径总和 II 相同。

💡思路:dfs

深度优先搜索的方式,枚举每一条从根节点到叶子节点的路径。

  • 当我们遍历到叶子节点,且此时路径和恰为目标和时,我们就找到了一条满足条件的路径,将 数组 tmp 加入 ans
  • 返回时,要删除当前数组 tmp 最后一个元素。

🍁代码:(C++、Java)

C++

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
private:vector<vector<int>> ans;void path(TreeNode* root, vector<int>& tmp, int sum){if(root == nullptr) return;sum -= root->val;tmp.push_back(root->val);if(sum == 0 && root->left == nullptr && root->right == nullptr) {ans.push_back(tmp);}else{path(root->left, tmp, sum);path(root->right, tmp, sum);}tmp.pop_back();return;}
public:vector<vector<int>> pathSum(TreeNode* root, int target) {vector<int> tmp;path(root, tmp, target);return ans;}
};

Java

/*** 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 {private List<List<Integer>> ans = new LinkedList<List<Integer>>();private void path(TreeNode root, List<Integer> tmp, int sum){if(root == null) return;sum -= root.val;tmp.add(root.val);if(sum == 0 && root.left == null && root.right == null) {ans.add(new LinkedList(tmp));}else{path(root.left, tmp, sum);path(root.right, tmp, sum);}tmp.remove(tmp.size() - 1);return;}public List<List<Integer>> pathSum(TreeNode root, int target) {List<Integer> tmp = new LinkedList<>();path(root, tmp, target);return ans;}
}

🚀 运行结果:

在这里插入图片描述

🕔 复杂度分析:

  • 时间复杂度 O ( n 2 ) O(n^2) O(n2),其中 n 为树的节点数。在最坏情况下,树的上半部分为链状,下半部分为完全二叉树,并且从根节点到每一个叶子节点的路径都符合题目要求。此时,路径的数目为 O ( n ) O(n) O(n),并且每一条路径的节点个数也为 O ( n ) O(n) O(n),因此要将这些路径全部添加进答案中,时间复杂度为 O ( n 2 ) O(n^2) O(n2)
  • 空间复杂度 O ( n ) O(n) O(n),空间复杂度主要取决于栈空间的开销,栈中的元素个数不会超过树的节点数。

题目来源:力扣。

放弃一件事很容易,每天能坚持一件事一定很酷,一起每日一题吧!
关注我LeetCode主页 / CSDN—力扣专栏,每日更新!

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

http://www.hkea.cn/news/96739/

相关文章:

  • 十大中国网站制作免费广告
  • wordpress 文章主题关键词推广seo
  • 佛山网站建设佛山网络推广代运营公司靠谱吗
  • 贵阳疫情最新消息站内seo优化
  • wordpress相关问题深圳百度关键字优化
  • 做国珍新时代 网站陕西seo顾问服务
  • 建立网站怎么做关键字搜索引擎营销的作用
  • 广州手机网站建设宁波seo优化费用
  • 怎么设置网站服务器宁德市教育局官网
  • 查看网站源代码建站可以牛排seo系统
  • 政府网站建设的基本原则百度网盘电脑版
  • 张家港网站建设福州百度快速优化
  • 兼职做网站编辑百度搜索推广开户
  • 谁告诉你j2ee是做网站的宁波网站推广找哪家公司
  • 谷歌外贸建站多少钱搭建网站教程
  • 赚钱靠普的网站关键字搜索软件
  • 建设银行深分行圳招聘网站做游戏推广一个月能拿多少钱
  • 北京网站建设及推广招聘关键词排名代做
  • 对网站建设的意见建议网络营销推广的方法有哪些
  • 爬虫网站怎么做怎样才能在百度上面做广告宣传
  • 网站页码南昌做seo的公司有哪些
  • 网络设计方案包括哪些深圳百度推广seo公司
  • 亚马逊跨境电商开店站长工具seo综合查询5g
  • 网站怎么做百度快照logo百度快照优化推广
  • 山西网站建设排名seo技术培训山东
  • 日韩系成人影片成首选网站如何优化推广
  • 网站到期续费通知搜索风云排行榜
  • 网站公司说我们做的网站服务器不够用哪个杭州seo好
  • 类似淘宝网站建设费用杭州哪家seo公司好
  • 装修网站怎样做seo专员很难吗