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

携程旅游网站官网网页设计网站制作公司

携程旅游网站官网,网页设计网站制作公司,wordpress支付看文章,保亭整站优化❓ 剑指 Offer 34. 二叉树中和为某一值的路径 难度#xff1a;中等 给你二叉树的根节点 root 和一个整数目标和 targetSum #xff0c;找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 示例 1#xff1a; 输入#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:vectorvectorint ans;void path(TreeNode* root, vectorint 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:vectorvectorint pathSum(TreeNode* root, int target) {vectorint 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 ListListInteger ans new LinkedListListInteger();private void path(TreeNode root, ListInteger 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 ListListInteger pathSum(TreeNode root, int target) {ListInteger 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/14286877/

相关文章:

  • 合肥网站建设5k5品牌查询网官网查询
  • 易语言 网站开发微信开发在哪能看
  • 代做网站关键词排名百度pc网页版
  • 亚马逊购物网站医疗网站前置备案
  • 长沙建设工程备案合同查询网站企业网站怎么做百度
  • 做外贸收费的网站做招聘的网站有哪些
  • wordpress建站论坛网站标题的写法
  • 哪些网站可以免费推广wordpress登陆界面
  • 用google翻译做多语言网站如何快速推广一个网站
  • WordPress文章白色标签刷神马网站优化排名
  • 网站选项卡图标中职网站建设与管理
  • 织梦本地做网站渐江建工水利水电建设有限公司网站
  • 太原网站快速排名提升多平台管理系统
  • 襄樊网站建设襄樊云服务器做网站难吗
  • 车辆年检查询系统官方网站南通装饰网站建设
  • 安徽建设厅官方网站上海网站开发培训
  • 网站策划书 范文设计素材网站p
  • 网站建设合同有效期wordpress如何实时刷新数据库
  • 公司电商网站开发方案全国企业信用公示查询服务平台
  • 企业网站如何做推广在线阅读 wordpress主题
  • html中文美食网站oa系统是什么系统
  • 我要建企业营销型网站深圳建站公司告诉你十个建站步骤
  • 网站服务器买了后怎么做福建网站建设哪家专业
  • 长沙银行网站建设采购网站建设招标方案
  • 威海高端网站建设网站被墙查询
  • 南京企业网站排名优化网页制作app下载
  • 网站一般怎么维护网站源码采集
  • 代挂QQ建设网站企业网站建立要做的准备
  • 地方做什么网站公司如何建立网站
  • 网站地图是怎么做的wordpress注册添加验证码