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

二叉树路径总和

一、给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。

112. 路径总和 - 力扣(LeetCode)

/*** 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 {public boolean traversal(TreeNode root,int sum){if(root.left==null&&root.right==null&&sum==0)return true;if(root.left==null&&root.right==null&&sum!=0)return false;if(root.left!=null){sum-=root.left.val;if(traversal(root.left,sum))return true;sum+=root.left.val;//回溯}if(root.right!=null){sum-=root.right.val;if(traversal(root.right,sum))return true;sum+=root.right.val;}return false;}public boolean hasPathSum(TreeNode root, int targetSum) {if(root==null)return false;return traversal(root,targetSum-root.val);}
}

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

113. 路径总和 II - 力扣(LeetCode)

class Solution {public List<List<Integer>> pathSum(TreeNode root, int targetSum) {List<List<Integer>> res=new ArrayList<>();if(root==null)return res;List<Integer> path=new LinkedList<>();traversal(root,targetSum,res,path);return res;}public void traversal(TreeNode root, int targetSum,List<List<Integer>> res,List<Integer> path){path.add(root.val);if(root.left==null&&root.right==null&&targetSum-root.val==0)res.add(new ArrayList<>(path));if (root.left!=null) {traversal(root.left,targetSum-root.val,res,path);path.remove(path.size()-1); // 回溯}if (root.right!=null) {traversal(root.right,targetSum-root.val,res,path);path.remove(path.size()-1);}}
}

http://www.dtcms.com/a/186797.html

相关文章:

  • 【vue】全局组件及组件模块抽离
  • .NET 在鸿蒙系统上的适配现状
  • 1.5 连续性与导数
  • SnowAdmin - 功能丰富、简单易用的开源的后台管理框架,基于 Vue3 / TypeScript / Arco Design 等技术栈打造
  • 系统架构-通信系统架构设计
  • Java大师成长计划之第19天:性能调优与GC原理
  • [ linux-系统 ] 自动化构建工具makefile
  • 如何通过DNS解析实现负载均衡?
  • 2025 盘古石杯初赛 wp
  • Python集成开发环境之Thonny
  • Ubuntu中配置【Rust 镜像源】
  • 今日行情明日机会——20250512
  • 六、STM32 HAL库回调机制详解:从设计原理到实战应用
  • 风车OVF镜像:解放AI开发限制的Ubuntu精简系统
  • 如何在 Bash 中使用 =~ 操作符 ?
  • linux内存管理
  • 【HarmonyOS 5】鸿蒙App Linking详解
  • 理解多智能体深度确定性策略梯度MADDPG算法:基于python从零实现
  • 方形铝壳电芯自动分选机:精准分档与高效生产的创新实践
  • Matlab 短时交通流预测AR模型
  • 零碳园区能源系统-多能互补体系
  • IP协议、以太网包头及UNIX域套接字
  • 1.7 方向导数
  • labview硬件采集<2>——使用布尔控件控制硬件的LED
  • LintCode第42题-最大子数组 II
  • MySQL之GET_JSON_OBJECT函数
  • 七、基于HAL库,实现串口+DMA+状态机通信实现
  • 居逸JY02A无刷电机驱动芯片介绍
  • 获取高德地图JS API的安全密钥和Key的方法
  • dfs第二次加训 详细题解 下