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

货车保险哪家网站可以直接做/用模板快速建站

货车保险哪家网站可以直接做,用模板快速建站,代运营公司收费,如何给网站做301跳转一、题目 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。 叶子节点 是指…

一、题目

给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。

叶子节点 是指没有子节点的节点。
在这里插入图片描述

链接:https://leetcode-cn.com/problems/path-sum

二、答案

DFS:对于树来说DFS即为先序遍历。

class TreeNode {int val;TreeNode left;TreeNode right;TreeNode() {}TreeNode(int val) { this.val = val; }TreeNode(int val, TreeNode left, TreeNode right) {this.val = val;this.left = left;this.right = right;}}class PathSum {/*** dfs** @param root* @param targetSum* @return*/public boolean hasPathSum(TreeNode root, int targetSum) {if (root == null){return false;}if (root.left == null && root.right == null){return targetSum == root.val;}boolean left = hasPathSum(root.left, targetSum - root.val);boolean right = hasPathSum(root.right, targetSum -  root.val);return left || right;}}

回溯:深度遍历的一种情况,暴力搜索所有路径。

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {List<List<Integer>> result = new ArrayList<>();public List<List<Integer>> pathSum(TreeNode root, int targetSum) {if (root == null){return new ArrayList<>();}List<Integer> visited = new ArrayList<>();backTrace(visited, root,targetSum);List<List<Integer>> pathes = new ArrayList<>();for (List<Integer> path : result) {if(isTargetNum(path,targetSum)){pathes.add(path);}}return pathes;}private boolean isTargetNum(List<Integer> path, int targetSum) {int sum = 0;for (int i = 0; i < path.size(); i++) {sum += path.get(i);}return sum == targetSum;}private void backTrace(List<Integer> visited, TreeNode root, int targetSum) {if (root == null){return;}visited.add(root.val);if (root.right == null && root.left == null) {result.add(new ArrayList<>(visited));visited.remove(visited.size() - 1);return;}backTrace(visited,root.left,targetSum);backTrace(visited,root.right,targetSum);visited.remove(visited.size() - 1);}
}

BFS:对于树来说为层次遍历。关键点在于增加一个存所有sum的队列。

import java.util.LinkedList;
import java.util.Queue;class PathSumBfs {/*** bfs** @param root* @param targetSum* @return*/public boolean hasPathSum(TreeNode root, int targetSum) {if (root == null){return false;}Queue<TreeNode> queue = new LinkedList<>();queue.offer(root);Queue<Integer> sumQue = new LinkedList<>();sumQue.offer(root.val);int sum = 0;while (!queue.isEmpty()){TreeNode treeNode = queue.poll();sum = sumQue.poll();if (treeNode.left == null && treeNode.right == null){if (sum == targetSum){return true;}continue;}if (treeNode.left != null){queue.offer(treeNode.left);sumQue.offer(sum + treeNode.left.val);}if (treeNode.right != null){queue.offer(treeNode.right);sumQue.offer(sum + treeNode.right.val);}}return false;}}
http://www.jmfq.cn/news/4876687.html

相关文章:

  • 常州网站建设公司/近期国内新闻
  • 犀牛云做网站一年多少钱/网络营销服务公司有哪些
  • 网站开发河南/seo基础优化包括哪些内容
  • 爱淘宝网页网站建设/网站不收录怎么办
  • 成交型网站/怎么在百度上做公司网页
  • 怎么建设外贸网站/发帖百度秒收录网站分享
  • 注册网站怎么做网站/百度品牌推广
  • 做家居建材出口网站有哪些/平面设计网站
  • 怎么建设一个网站/网站seo报价
  • 北京学校网站建设公司/深圳网站关键词优化推广
  • 江苏建设考试培训网/seo推广教程
  • 上海做网络推广/大连网站seo
  • pc做任务赚钱的网站/新网站推广最直接的方法
  • 建设网站能解决什么问题/外包接单平台
  • 网站如何做抖音推广/公司推广文案
  • web需要学什么内容/百度seo排名优化
  • 买公司的网站/北京seo排名外包
  • wordpress做的好的网站/广东培训seo
  • 网站开发项目实战视频/青岛建站seo公司
  • 商务酒店网站建设/最新百度关键词排名
  • 给别人做网站/百度灰色关键词排名代做
  • 网站开发外包 价格/郑州网站策划
  • 做网站在线支付系统多少钱/制作网站费用
  • 重庆网站建设推广/网易疫情实时最新数据
  • 在线音乐网站开发php/亚马逊关键词工具哪个最准
  • 安徽省建设安全质量协会网站/湖北短视频seo营销
  • 做一手房做那个网站好/淘宝搜索关键词技巧
  • 吉安做网站公司/seo站内优化技巧
  • 网站建设制/外贸订单一般在哪个平台接?
  • 关于色彩搭配的网站/湘潭网络推广