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

游戏网站模板免费下载wordpress 第三方

游戏网站模板免费下载,wordpress 第三方,做网站需要几天,体验营销理论给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 在这里给大家提供两种方法进行思考,第一种方法是递归,第二种方式使用回溯的方式进行爆…

给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。

叶子节点 是指没有子节点的节点。

 在这里给大家提供两种方法进行思考,第一种方法是递归,第二种方式使用回溯的方式进行爆搜

        递归:树具有天然的递归结构,将一个大的问题转换成多个相同的子问题而进行解决,就相当于你会0-1的算式,你自然而然可以推导出0-n的算式(递归终止条件+递归操作

       我觉的这个图可以很形象的说明一些问题,通过改变每个结点的差值,最后进行叶子结点与传入的target进行比较,如果相等,就说明树中肯定有满足情况的路径

解题步骤:

  • 方法中返回什么,我们就创建什么
 public List<List<Integer>> pathSum(TreeNode root, int targetSum) {List<List<Integer>> resList=new LinkedList<>();...}
  • 递归结束的条件(分为第一次入参和叶子结点的入参,两者的操作不一样)
        //如果传进行的叶子结点为空,直接返回一个空链表if(root==null){return resList;}//如果是叶子结点且叶子结点的值等于target,则该叶子结点是满足情况下的一条路径上的值if(root.left==null&&root.right==null){if(root.val==targetSum){List<Integer> list=new LinkedList<>();list.add(root.val);//将该路径加入总结果集中resList.add(list);}return resList;}
  • 每次递归的时候将target-root.val作为参数传下去
int diff=targetSum-root.val;
  • 如果左树不为空,递归左树,如果右树不为空,递归右树
        if(root.left!=null){List<List<Integer>> curList=pathSum(root.left,diff);for(int i=0;i<curList.size();i++){List<Integer> list1=curList.get(i);//将该节点加入路径中list1.add(0,root.val);//加入到结果集中resList.add(list1);}}if(root.right!=null){List<List<Integer>> curList=pathSum(root.right,diff);for(int i=0;i<curList.size();i++){List<Integer> list1=curList.get(i);list1.add(0,root.val);resList.add(list1);}}
  • 最后每次递归结束后返回结果集,供归的时候进行使用
return resList;

方法二:回溯 

回溯的方法相当于暴力搜索一样,但是对于面试而言,我更加推荐回溯(比较容易记忆)

    //大体思想其实和递归差不多,就是回溯这种题有个特定的模板,有的时候,即使你不会做,那你也有可能把题做出来List<List<Integer>> resList=new LinkedList<>();List<Integer> path=new LinkedList<>();public List<List<Integer>> pathSum(TreeNode root, int targetSum) {if(root==null){return resList;}backtracing(root,targetSum);return resList;}public void backtracing(TreeNode root,int targetSum){if(root==null){return;}path.add(root.val);if(targetSum==root.val&&root.left==null&&root.right==null){resList.add(new ArrayList<>(path));}int diff=targetSum-root.val;if(root.left!=null){pathSum(root.left,diff);//回溯path.remove(path.size()-1);}if(root.right!=null){pathSum(root.right,diff);path.remove(path.size()-1);}}

http://www.yayakq.cn/news/563344/

相关文章:

  • 建行国际互联网网站徐州手工活外发加工网
  • 精品课程网站怎么做江苏网站推广网络
  • 网站后台m贸易网站建设公司
  • 网站标题采集建立网站需要哪些东西
  • 模板网站怎么用建设集团网站方案
  • 学做衣服网站房屋室内设计用什么软件
  • 觉 网站做图软件ps下载网站有哪些内容
  • 优质企业网站建设网站 设计 文档
  • 网站备案号不存在哪些公司经常做网站
  • 推荐一些做电子的网站网站建设 服务器主机配置
  • 做响应式网站的百度seo营销推广
  • pc网站和手机网站纯净软件网站推荐
  • 给女朋友做网站的素材网站主页被做跳转
  • 移动网站建设书籍推荐铜川做网站的公司
  • 网站网店建设企业网站模板免费下载
  • 网站建设中英文版wordpress是php文件路径
  • 南京建设企业网站的公司英文网站建设600
  • 杭州网站设计上市公司郑州seo推广优化
  • 什么行业需要做网站和推广阅读网站模板下载
  • 做简历网站微信公众号网站怎么做
  • 企业网站优化方案范本在线网站建设建议
  • 中国沈阳网站在哪里下载jsp 淘宝网站验证码 设计
  • php 家政网站创一东莞网站建设
  • 购物网站开发代码新站加快网站收录
  • 权威的大连网站建设品牌推广方案100例
  • 哪个网站查食品建设好网站建设与开发英文文献
  • 网站访问统计怎么做用asp做网站怎么美观
  • 建设医院网站多少钱响应式网站一般做几个尺寸
  • 展示网站和营销网站的区别sem营销推广
  • 做美食的网站有那一些如皋网站建设