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

石家庄建设网站哪家好/seo俱乐部

石家庄建设网站哪家好,seo俱乐部,学院门户网站建设必要性,私域商城平台题目 给定一棵二叉树和一个值sum,求二叉树中节点值之和等于sum的路径的数目。路径的定义为二叉树中顺着指向子节点的指针向下移动所经过的节点,但不一定从根节点开始,也不一定到叶节点结束。例如,在如图8.5所示中的二叉树中有两条…

题目

给定一棵二叉树和一个值sum,求二叉树中节点值之和等于sum的路径的数目。路径的定义为二叉树中顺着指向子节点的指针向下移动所经过的节点,但不一定从根节点开始,也不一定到叶节点结束。例如,在如图8.5所示中的二叉树中有两条路径的节点值之和等于8,其中,第1条路径从节点5开始经过节点2到达节点1,第2条路径从节点2开始到节点6。
在这里插入图片描述

分析

虽然路径不一定从根节点开始,但仍然可以求得从根节点开始到达当前遍历节点的路径所经过的节点值之和。

如果在路径上移动时把所有累加的节点值之和都保存下来,然后移动的过程中求差值,就容易知道是否存在从任意节点出发的值为给定sum的路径。

有了前面的经验,就可以采用二叉树深度优先搜索来解决与路径相关的问题。当遍历到一个节点时,先累加从根节点开始的路径上的节点值之和,再计算到它的左右子节点的路径的节点值之和。这就是典型的前序遍历的顺序。

public class Test {public static void main(String[] args) {TreeNode node5 = new TreeNode(5);TreeNode node2 = new TreeNode(2);TreeNode node4 = new TreeNode(4);TreeNode node1 = new TreeNode(1);TreeNode node6 = new TreeNode(6);TreeNode node3 = new TreeNode(3);TreeNode node7 = new TreeNode(7);node5.left = node2;node5.right = node4;node2.left = node1;node2.right = node6;node4.left = node3;node4.right = node7;int result = pathSum(node5, 8);System.out.println(result);}public static int pathSum(TreeNode root, int sum) {Map<Integer, Integer> map = new HashMap<>();map.put(0, 1);// 节点和为0的路径有一个(空路径)// path: 遍历节点的路径和return dfs(root, sum, map, 0);}private static int dfs(TreeNode root, int sum, Map<Integer, Integer> map, int path) {if (root == null) {return 0;}// 前序遍历path += root.val;int count = map.getOrDefault(path - sum, 0);// 深度优先遍历,如果以前存在这个差值,那么和当前路径一定是以前路径的延伸map.put(path, map.getOrDefault(path, 0) + 1);count += dfs(root.left, sum, map, path);count += dfs(root.right, sum, map, path);// 当前这个节点遍历完成,重回当前节点的父节点继续遍历。map.put(path, map.get(path) - 1);return count;}
}
http://www.jmfq.cn/news/5310703.html

相关文章:

  • 美容加盟网站建设/国内免费域名注册网站
  • 广州网站建设V芯ee8888e/站长工具查询域名信息
  • 吉林电商网站建设价格/网络营销推广方式有哪些
  • 昆明网站建设昆明/关键词营销推广
  • 移动网站建设价格/谷歌seo引擎优化
  • 政府门户网站建设招标文件/国家职业技能培训学校
  • 完美网站建设/网络热词2022流行语及解释
  • 动态网站建设 js/柳州今日头条新闻
  • 海南省建设培训与执业资格注册中心网站/360优化关键词
  • 宁夏公路建设局网站/网络营销心得体会
  • 农业信息网站 建设/百度seo怎么查排名
  • 西宁市网站建设公司/江门百度seo公司
  • 承德市外贸网站建设/潍坊seo招聘
  • 中国建设网站下载/网络媒体软文案例
  • 网站建设原/seo网站外包公司
  • 河南省村镇建设处网站/优化服务公司
  • 海原网站建设/淘宝指数网站
  • 济南市建设银行网站/品牌营销活动策划方案
  • 网站建设证有/网站快速排名公司
  • 网站建设三大部分/免费发外链的网站
  • 网站建设公司海报/重庆关键词排名推广
  • 网站建设服务热线/百度问答首页
  • 北京网站建设公司报价/网络推广营销方法
  • 合肥网站建设第一品牌/steam交易链接怎么看
  • 黑龙江省建设会计协会网站首页/比较靠谱的网站
  • 建设网站所需资料/网站建设工作总结
  • 聊城宏远网站建设优化/谷歌引擎搜索入口
  • joomla 网站建设教程/社群营销方案
  • 番禺网站建设设计/百度竞价怎么开户
  • 项目建设网站/百度发布信息怎么弄