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

Leetcode 112:路径总和

给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。

说明: 叶子节点是指没有子节点的节点。

思路:遍历存储每条路径。当前节点为叶子节点时,求和。并判断是否等于目标值。

public static boolean hasPathSum(TreeNode root, int targetSum) {if(root==null) return false;List<Integer> path=new ArrayList<>();boolean res=pathSum(root,path,targetSum);    //遍历所有路径,并求和return res;}public static boolean pathSum(TreeNode node, List<Integer> path,int targetSum){path.add(node.val);//先判断是否当前节点是否为叶子节点if(node.left==null && node.right==null){int pathSum=0;for(int i=0;i<path.size();i++){pathSum=pathSum+path.get(i);}if(pathSum==targetSum) return true;}//不为叶子节点时if(node.left!=null){boolean left=pathSum(node.left,path,targetSum);if(left) return true;path.remove(path.size()-1);}if(node.right!=null){boolean right=pathSum(node.right,path,targetSum);if(right) return true;path.remove(path.size()-1);}return false;}

http://www.lryc.cn/news/356728.html

相关文章:

  • 电源模块测试系统怎么测试输入电压范围?
  • 实战指南:Vue 2基座 + Vue 3 + Vite + TypeScript微前端架构实现动态菜单与登录共享
  • Java面试进阶指南:高级知识点问答精粹(一)
  • 儿童礼物笔记
  • LeetCode215数组中第K个最大元素
  • LeetCode //C - 143. Reorder List
  • 速盾:cdn如何解析?
  • K8s集群调度续章
  • 大工作量LUAD代谢重编程模型多组学(J Transl Med)
  • C语言#include<>和#include““有什么区别?
  • 正在直播:Microsoft Copilot Studio 新增支持Copilot代理、Copilot扩展等多项功能
  • 数据通信基本概念汇总
  • AcWing 835. Trie字符串统计——算法基础课题解
  • RT-DETR算法改进【NO.1】借鉴CVPR2024中的StarNet网络StarBlock改进算法
  • 5,串口编程---实现简单的用串口发送接收数据
  • LeetCode583:两个字符串的删除操作
  • LLama学习记录
  • 如何克隆非默认分支
  • 数据结构——图
  • 蓝桥杯—SysTick中断精准定时实现闪烁灯
  • ML307R OpenCPU UDP使用
  • pod详解
  • 免费插件集-illustrator插件-Ai插件-文本对象分行
  • web学习笔记(五十九)
  • UE5 UE4 快速定位节点位置
  • go routing 之 gorilla/mux
  • 新火种AI|警钟长鸣!教唆自杀,威胁人类,破坏生态,AI的“反攻”值得深思...
  • AAA实验配置
  • Maven高级详解
  • C++的算法:模拟算法