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

网站建设合同纠纷管辖上海网站建设服务

网站建设合同纠纷管辖,上海网站建设服务,临时工200一天一结,西安网站建设那家强题目 给定一棵二叉树和一个值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.ds6.com.cn/news/61567.html

相关文章:

  • 汽车4s网站设计单页网站怎么优化
  • 广州建网站加备案南京网络建站公司
  • 百度软件应用市场百度自然搜索排名优化
  • 网站开发模板带css样式信息流广告投放渠道
  • 专业做婚庆的网站有哪些谷歌chrome安卓版
  • 网站中怎么做下载链接企业建站流程
  • 个人网站建设素材比较好的网站建设网站
  • 做汽配的网站seo推广优化外包公司
  • 网站做的不好使青岛seo服务哪家好
  • 自己的电脑做网站云存储什么都不懂能去干运营吗
  • 番禺网站优化百度快速排名软件下载
  • 网站改版的方式大致为seo日常工作
  • 常州网站建设公司报价数据分析软件工具有哪些
  • 五金网站制作seo推广软件排行榜
  • 搜索引擎营销sem丹东网站seo
  • 成都网站建设好多钱长春网站建设公司哪家好
  • 全屋定制官网长沙百度网站推广优化
  • 千灯做网站西安网站建设推广
  • 网站开发需求网网络营销企业是什么
  • 旅游网站模块分类seo的中文意思
  • 企业微信网站怎么建设windows优化大师手机版
  • led灯网站策划书福建网络seo关键词优化教程
  • 企业网站制作流程图seo 知乎
  • 中国建设银行网站查询密码怎么创建自己的网址
  • 网站开发建设类合同网址链接生成器
  • 柳州网站制作公司免费发seo外链平台
  • 网站建设的步骤是什么从哪里找网络推广公司
  • 网站搭建平台有哪些深圳谷歌推广公司
  • 成人本科报考条件及要求百度seo优化怎么做
  • 三室两厅两卫装修实景广州网页seo排名