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

网站建设网页怎么排列顺序网站建设公司-山而

网站建设网页怎么排列顺序,网站建设公司-山而,网站优化推广费用,企业seo网络推广今天在刷力扣的时候,在写一道翻转链表的题目的过程中,在尝试使用递归解决该问题的时候,第一版代码却每次都返回的是null,这个错误让我尝试去debug了一下,最终找出了问题,并且让我对递归有了一些更深的理解&…

今天在刷力扣的时候,在写一道翻转链表的题目的过程中,在尝试使用递归解决该问题的时候,第一版代码却每次都返回的是null,这个错误让我尝试去debug了一下,最终找出了问题,并且让我对递归有了一些更深的理解,下面是我一开始写的代码。

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {  public ListNode reverseList(ListNode head) {  ListNode pre = null;  ListNode cur = head;  reverse(pre, cur);  return pre;  }  public void reverse(ListNode pre, ListNode cur) {  if (cur == null) {  // 递归基,当cur为空时,表示已到达链表末尾,直接返回  return;  }  ListNode next = cur.next; // 保存当前节点的下一个节点  cur.next = pre; // 反转当前节点的指向  reverse(cur, next); // 递归地处理下一个节点  }  
}

我考虑的是java中的链表传递的是引用所以我在reverse递归结束后,pre应该正好是翻转链表后的第一个结点,所以我在递归后将它返回给最终答案,结果无论输入是什么,输出都是null。

在debug后,我发现,

在最后检测到cur是null之时,pre所指向的链表是我们最后要得到的答案,在这个时候执行return,但是return到的是上一个reverse函数栈,在该函数中,pre链表的结果还不是最终答案,就这样一步步回退回去之后,直到恢复成了原样,并从最后的“}}”退出,此时pre又变成了原来的空值,所以这就导致了无论我的输入是什么,输出都是空值的原因。 

将代码修改如下,在最后找到目标答案值得时候,一层层返回这个答案值,而不是返回空值得回退,这样可以将最后得答案值返回给进入循环时的pre,修改后的代码如下所示。

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {  public ListNode reverseList(ListNode head) {  ListNode pre = null;  ListNode cur = head;  return reverse(pre, cur); }  public ListNode reverse(ListNode pre, ListNode cur) {  if (cur == null) {  // 递归基,当cur为空时,表示已到达链表末尾,直接返回  return pre;  }  ListNode next = cur.next; // 保存当前节点的下一个节点  cur.next = pre; // 反转当前节点的指向  return reverse(cur, next); // 递归地处理下一个节点  }  
}

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

相关文章:

  • 网站开发网站源码美区能和国区家庭共享吗
  • 10分钟免费建网站帮别人做网站开票开什么税目
  • 51购物网官方网站贵 建设厅网站文件
  • 个体户营业执照可以网站备案杭州手机建站模板
  • 自己找网站开发项目免费论坛创建
  • 西安网站seo价格佛山哪里做网站
  • 网站建设的前端和后端做三轨网站犯法吗
  • 网站不能粘贴怎么做网站建设计划书 模板下载
  • 苏州网联盛网站建设成立一个公司需要哪些流程
  • 西安网站建设培训学校广东小程序系统开发
  • 营销型网站建设的优势有哪些怎么修改wordpress站点代码
  • 网站推广网站关键词排名怎么做上海网站优化推广公司
  • 哪里有免费的域名注册建网站php7 wordpress
  • 优化算法 网站合肥晚报社官方网站
  • 怎样找到正规代加工网站网站开发语言入门
  • 购买域名网站佛山禅城网站建设
  • 哈尔滨公司网站开发北京做网站优化的科技公司
  • 做创新方法工作的网站网站代码优化目的
  • 常熟苏州网站建设公司网站进不去qq空间
  • 微网站开发流程阿里云域名注册备案流程
  • 网站广告代码seo如何提升排名收录
  • 建设中医知识学习网站jpress与wordpress
  • 网站建设教程 金旭亮代做网站的好处
  • 企业网站建设公司 丰台邯郸做网站优化
  • 宜宾网站开发网站建设 租赁
  • 成都网站定制费用如何登陆公司网站后台
  • 建站公司用的开源系统杭州互联网企业有哪些
  • 网站建设公司电话咨询wap网站建设哪家好
  • 浅绿色网站模板王野苏婉卿
  • 网站开发工作时间西双版纳建设局网站