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

西地那非片吃了多久会硬起来郴州seo优化公司

西地那非片吃了多久会硬起来,郴州seo优化公司,做网站绑定 对应的域名,手机百度云转换wordpress给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 left 到位置 right 的链表节点&#xff0c;返回 反转后的链表 。 链表的题&#xff0c;大部分都可以用指针或者递归可以做&#xff0c;指针如果做不出来的话&#xff0c;…

给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。

       链表的题,大部分都可以用指针或者递归可以做,指针如果做不出来的话,建议多声明几个指针就可以做的出来了

方法一:

       因为链表中的头结点也有可能进行反转操作,所以我们为了不失一般性,创建一个虚拟头结点进行操作

       我们需要旋转[left,right]区间内的链表结点,所以我们就必须要知道left的上一个结点是谁,所以我们可以使用快慢指针进行操作,slow慢指针指向我们left的上一个结点,对区间内的节点进行反转,过程如下:

 源代码如下:

 public ListNode reverseBetween(ListNode head, int left, int right) {//如果头结点为空或者是头结点的后继点为空的话直接返回headif(head==null||head.next==null){return head;}//创建一个虚拟头结点ListNode dummyHead=new ListNode(0);dummyHead.next=head;//设置两个指针ListNode slow=dummyHead;//慢指针-->指向left指针指向节点的上一个节点ListNode fast=dummyHead.next;//快指针  将left指针与right指针中的节点加到left指针前面(包括right指针)//进行移动,将slow指针移向left指针的前一个节点for (int i = 1; i <left; i++) {slow=slow.next;fast=fast.next;}//将left和right指针中的节点移向left节点前(包括right指针对应的节点)for (int i = 0; i <right-left; i++) {ListNode removeNode=fast.next;fast.next=fast.next.next;removeNode.next=slow.next;slow.next=removeNode;}//返回头结点后的链表长度return dummyHead.next;}

方法二:

在以前学习得到过程中我们已经学过了链表翻转(必会)

//这几行代码必须得会,链表题最多的就是翻转,你可以直接当一个api去用
public ListNode reverse(ListNode root){if(root==null||root.next==null){return root;}//前扑ListNode pre=null;ListNode cur=root;//后继ListNode next=null;while(cur!=null){next=cur.next;cur.next=pre;pre=cur;cur=next;}//返回的是翻转后的头结点return pre;}

       现在我们只需要找到需要翻转链表区间的前扑后继,然后通过前扑的next指向翻转后的头结点,让反转后的尾结点指向后继,这道题就解出来了

 

源代码如下(这种方法比较推荐,比较容易理解):

 public ListNode reverseBetween(ListNode head, int left, int right) {if(head==null||left>=right){return head;}//找到left的前驱节点,因为会设计头结点的操作,所以要创建一个虚拟头结点ListNode dummyNode=new ListNode(0,head);ListNode pre=dummyNode;//找到对应的前驱节点for (int i =1; i <left; i++) {pre=pre.next;}//未反转链表的头结点ListNode leftNode=pre.next;ListNode rightNode=leftNode;pre.next=null;//找到未反转链表的尾结点for (int i = 1; i <=right-left; i++) {rightNode=rightNode.next;}//找到后继ListNode end=rightNode.next;rightNode.next=null;ListNode newStartNode=reverse(leftNode);pre.next=newStartNode;leftNode.next=end;return dummyNode.next;}//反转链表public ListNode reverse(ListNode root){if(root==null||root.next==null){return root;}ListNode pre=null;ListNode cur=root;ListNode next=null;while(cur!=null){next=cur.next;cur.next=pre;pre=cur;cur=next;}return pre;}

 

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

相关文章:

  • 做网站哪个软件好用app制作平台要多少钱
  • 青岛网站建设推广优化东莞网站推广排行
  • 网站推广朋友圈文案网站是什么?
  • html5 企业网站模板宁波seo外包推广软件
  • 天津网站建设哪家公司好外贸高端网站设计公司
  • 永康网站建设制作中国建设部网站首页
  • 网络营销跟做网站有什么区别h5网站开发模板
  • wordpress边栏插件成都网站整站优化
  • 专业邯郸做网站亚马逊seo是什么意思
  • 文件夹里内容做网站的分类中国中小企业网官方网站
  • 做免费的网站教程网站建设品
  • 快手刷作品双击自助网站如何开展网站建设
  • 网站建设合同样本wordpress内页404
  • 设计模板网站做网站用后缀好
  • 网站开发模式名词企业网站建设最新技术
  • wordpress构建自己的网站网站建设招标文件范本
  • 个人网站 外贸wordpress 提取文章段落
  • 广东华星建设集团网站网站商城建设方案
  • 建设银行天津分行门户网站慈溪 网站建设
  • 沈阳做网站直播的公司排名前50名免费的网站
  • 企业网站怎么搭建手机营销网站制作
  • 网站空间pdf下载不了做打鱼网站
  • ui设计在哪个网站可以接做中国铁路总公司建设管理部网站
  • 太仓建设工程信息网站益阳市 网站建设
  • 网站建设销售技巧怎么做外贸推广
  • 定制网站开发报价单韩国封号事件网站建设
  • 如何开发移动网站网站转移动版
  • 网站的优化是什么嘉定网站建设
  • 网站删除关键词网站开发违约解除合同通知函
  • 网站如何添加百度商桥网页游戏平台网站