首页 > 其他分享 >局部反转链表

局部反转链表

时间:2022-10-24 13:34:39浏览次数:62  
标签:head ListNode int 反转 局部 链表 dummyNode left

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

    public ListNode reverseBetween(ListNode head, int left, int right) {
       ListNode dummyNode = new ListNode(-1);//题眼
       dummyNode.next = head;
       ListNode pre = dummyNode;
       for(int i=0;i<left-1;i++){
           pre = pre.next;
       }
       int diff = right - left;
       ListNode cur = pre.next;

       for(int i=0;i<diff;i++){
          ListNode tmp = cur.next;
          cur.next = tmp.next;//重点
          tmp.next = pre.next;//重点
          pre.next = tmp;
       }
       return dummyNode.next;
    }

  

标签:head,ListNode,int,反转,局部,链表,dummyNode,left
From: https://www.cnblogs.com/shijianchuzhenzhi/p/16821182.html

相关文章

  • JAVA--LinkedList底层双链表添加元素超详细
     集合里面存储的都是对象    添加第一个元素    添加第二个元素    依次往后添加对象/元素。   first指向linkedList集合里存储的第......
  • 链表
    #插入定义列表a=[a1,a2......ai-1,ai+1......an-1,an]ai-1-->节点p,ai+1-->节点q(此时p->next=q)设插入元素ai为节点xx->next=p->nextp->next=x#删除定义列表a=[a₁,......
  • 链表结构
    链表分为两种:单向链表和双向链表。 其中单向链表每个节点只有两个元素。 而双向链表的每个节点有三个元素。 还有,在代码开发的过程中,如果要解剖分析源码,那么,win......
  • 链表
    链表删除节点a,a+1....ai-1,ai,ai+1,....使ai-1的节点为p,使ai的节点为t,ai+1的节点为q使p(next-->ai+1)清除t节点的next完成删除节点t插入节点a,a+1....ai-1,ai+1,.........
  • 单链表c语言实现网上查找
    插入#include<malloc.h>#defineSIZE100#defineINCREMENT_SIZE10typedefstructLNode{intdata;LNode*next;}LNode,*LinkList;//creataLinkLi......
  • 单链表插入和删除一个节点的伪代码算法
    插入设ai-1节点为pai+1节点为q插入节点为t则p-->t-->next=q-->next删除设ai-1节点为pai+1节点为q删除的字节为tp-->next=t-->nextfree(t)参考链接https://bl......
  • 23. 合并K个升序链表
    给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。 示例1:输入:lists=[[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5......
  • 链表实现
    1.伪代码算法要插入一个节点,即将上一个节点指向的地址改为要插入的地址,将新的节点指向下一个节点即setnext(i)toqset*ptonext(i)setqtonext(p)要删除一......
  • 问题:keil使用局部变量出错
    发现在中断程序里定义变量容易出未知性错误://对count,sec计数voidtimer0()interrupt1{ staticunsignedcharcount=0; //unsignedcharK=0;//放这里没问题,定......
  • 链表
        单链表插入:1.记ai-1节点为p,ai+1节点为q.生成一个新节点S,节点S的数据域置为ai:S->data=ai.2.节点S的指针域指向ai+1:S->next=p->next;3.令节点p的指针域指......