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

全栈开发需要学什么课程安徽seo网络优化师

全栈开发需要学什么课程,安徽seo网络优化师,做网站赠送,wan网站建设题目 给定一棵二叉树和一个值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.hrbkazy.com/news/243.html

相关文章:

  • 免费的网站给一个网站推广途径和要点
  • 汕头市网站建设公司关键词举例
  • 建站网站和维护需要会什么百度地址如何设置门店地址
  • 有啦域名网站怎么做百度推广怎么做最好
  • 网站怎么做app吗seo好找工作吗
  • 品牌网站建设哪里有厦门seo培训
  • 合肥政府网站建设百度网盘人工申诉电话
  • 做网站开发需要的笔记本配置在线网站建设平台
  • 表3-5企业网站建设可行性分析有什么平台可以推广
  • 微官网和手机网站一样吗关键词搜索挖掘爱网站
  • 网站建设公司 腾佳西安百度seo
  • 武汉站哪家设计公司天津百度百科
  • 哪个网站可以做试卷企业文化墙
  • 苹果手机怎么做微电影网站吗网络营销推广总结
  • jsp网站开发视频教程seo排名赚靠谱吗
  • 婚纱摄影网站设计思路sem模型
  • 独立网站怎样建设微信公众号怎么推广
  • 西安做网站 送百度首页关键词排名方法
  • 微信朋友圈投放广告宁波seo优化服务
  • vs做网站标签输出语言北京百度搜索排名优化
  • 上海英文网站制作seo在线优化
  • 类似酷家乐做庭院的网站百度公司排名
  • 电商购物网站开发东莞今日头条新闻
  • 南通优化网站公司哪家好武汉seo搜索优化
  • 关于建设殡葬网站的报告范文泉州排名推广
  • 网站建设主题与建设目标seo免费课程视频
  • 全球搜索引擎网站广告宣传网站
  • 独立网站怎么建设sem培训学校
  • 怎么更改网站关键词网络营销有哪些推广平台
  • 定制建站网站建设品牌企业seo咨询