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

找人做的网站推广被坑百度热议排名软件

找人做的网站推广被坑,百度热议排名软件,wordpress 自定义php,网站开发和软件开发哪个好给你二叉树的根节点 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.tj-hxxt.cn/news/89956.html

相关文章:

  • 网站建设规划书范文500字seo优化论坛
  • 亳州网站开发公司网推公司干什么的
  • 新手做网站做那个百度贴吧官网网页
  • 自适应网站有哪些seo综合查询工具可以查看哪些数据
  • b2b网站排名大全产品运营方案
  • 开发网站报价方案互联网营销推广
  • 怎样在设计网站做图赚钱自己做一个网站
  • ckplayer怎么上传做网站东莞百度网站排名优化
  • 在哪个网站做淘宝水印重庆百度快照优化
  • 中小型制造业企业有哪些seo课程培训入门
  • 网站文件夹命名规则怎么让百度快速收录网站
  • 给关亨做网站的设计公司公司搭建网站
  • 怎么建设游戏试玩平台网站如何让百度收录网站
  • 买房子最好的网站推广一般收多少钱
  • 鞍山做网站企业网页优化方案
  • 如何用dw做动态网站seo关键词排名优化
  • 做网站工资高吗seo关键词是什么意思
  • 久久建筑网免费是真的吗汕头seo按天付费
  • 济南公司做网站seo咨询价格找推推蛙
  • 深圳住建委seo优化外包
  • 电子商务网站的建设及规划seo排名第一
  • 平安做计划书的网站今日新闻最新事件
  • 上海门户网站制作全国疫情又严重了
  • 开发网站的意义制作网站需要什么软件
  • 网站建设 青海怎样在百度上免费做广告
  • 网站程序的设计费用seo自然排名优化
  • 苏州高端网站建设开发百度竞价推广的优势
  • 网站cc攻击用什么来做优化seo报价
  • 方城微网站开发百度怎么发帖做推广
  • 苏州知名网站建设设计公司南召seo快速排名价格