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

沈阳网站的优化免费建立永久网站

沈阳网站的优化,免费建立永久网站,app推广注册招代理,免费门户网站系统题目 给定一棵二叉树和一个值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.yayakq.cn/news/276691/

相关文章:

  • 励志做的很好的网站做玻璃瓶的网站
  • 专业微网站营销wordpress建双语网站
  • 企业网站托管收费标准电脑版h5制作软件
  • 网站建设服务规划与措施厦门企业网站设计公司
  • 安徽省级建设主管部门网站国外画册设计网站
  • 定制网站开发哪个好做文案的网站有些什么
  • 专业做网站哪家强购物网站排名2017
  • 网站内容建设宝塔反代wordpress
  • 自己开发网站要多少钱网址缩短在线生成器
  • 深圳做网站推广的公司哪家好手机wordpress主题
  • 建设银行长春网站微商城网站建设策划
  • 网站图片怎么做alt巢湖网站建设电话
  • 网站建设解决问题网络推广策划方案
  • 呼和浩特企业网站建设wordpress做服务器配置
  • 外贸网站推广制作教程网推拉新怎么做
  • 网站模版如何去除title版权信息长沙专业做网站公司有哪些
  • 用h5开发的网站模板网站建设 凡科
  • 顾氏网站建设有限公司怎么样正规的手游代理平台
  • 平台网站兼职做sap热 综合-网站正在建设中
  • 湖南做网站 n磐石网络如何建单位网站
  • 绵阳网站建设报价网页设计与制作工作
  • 类似猪八戒的网站建设做商城的网站用什么框架好
  • 网站建设汉狮怎么样沈阳微信网站建设
  • 福安市住房和城乡建设网站wordpress客户端5.5
  • 做外贸需要自己建网站吗白鹭引擎做h5网站
  • 禅城网站建设费用外贸建站用什么平台好
  • 贵州移动端网站建设制作企业官网哪家好
  • 苏州网站建设书生提升学历
  • 东莞市营销网站建设广西壮族自治区图书馆
  • 无锡电子商城网站建设wordpress防御插件