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

反转链表

时间:2023-06-10 20:33:35浏览次数:29  
标签:pre head ListNode cur 反转 newHead 链表 next

头插法:

class Solution {
    public ListNode reverseList(ListNode head) {
        ListNode newHead = new ListNode(0);newHead.next = null;
        ListNode p = head;
        ListNode q;
        while(p!=null){
            q=p;
            p = p.next;
            q.next = newHead.next;
            newHead.next = q;
        }

        return newHead.next;
    }
}

就地逆转

class Solution {
    public ListNode reverseList(ListNode head) {
        ListNode pre = null;

        ListNode cur = head;
        
        while(cur!=null){
            ListNode next = cur.next;
            cur.next = pre;
            pre = cur;
            cur = next;
        }

        return pre;
    }
}

标签:pre,head,ListNode,cur,反转,newHead,链表,next
From: https://www.cnblogs.com/chenyi502/p/17471889.html

相关文章

  • 代码随想录算法训练营第四天|24. 两两交换链表中的节点 , 19.删除链表的倒数第N个节点
    24.两两交换链表中的节点 个人感觉这个不太难,刚开始打算用步进值为2,来搞,但是没有想到链表应该是怎么样的,原来可以直接用: 1cur=cur->next->next 学到了,这是我自己写的代码:1ListNode*MyLinkedList::swapPairs(ListNode*head)2{3ListNode*dummyHead=new......
  • 代码随想录算法训练营第三天| 203.移除链表元素 、 707.设计链表 、206.反转链表
    链表的构造:link.h:1#ifndefLINK_H2#defineLINK_H3#include<vector>45structListNode{6intval;7ListNode*next;8ListNode():val(0),next(nullptr){}9ListNode(intx):val(x),next(nullptr){}10ListNode(in......
  • 链表-移除链表元素
    点击查看代码varremoveElements=function(head,val){vardummyNode=newListNode(-1);//设置一个虚拟头节点dummyNode.next=head;varprev=dummyNode;//prev记录当前节点的前一个节点while(prev.next){//从head开始遍历链表if(......
  • 链表和双指针框架
    链表和双指针框架前后指针:方便链表删除快慢指针:获取链表倒数第N个元素快慢指针+前后指针:组合问题快慢指针:相交、判环、起点、长度双索引指针:合并/分割/拼接链表链表处理细节细节1:创建额外的哨兵节点的时机细节2:链表递归顺序细节3:虚拟节点细节4:递归实现双向遍历 前后指针:方便链......
  • gpio反转测量中断执行时间
    voidtxxx_gpio_pulse_opt_start(void){/*设置gpio输出低电平*//*设置gpio输出高电平*//*设置gpio输出低电平*/}voidtxxx_gpio_pulse_opt_runnnig(void){/*设置gpio输出高电平*//*设置gpio输出低电平*/} 初始化之前调用txxx_gpio_pulse_opt_start(),初始化后中断......
  • 链表:剑指 Offer 24. 反转链表
    题目描述:  方法:迭代(双指针) classSolution{publicListNodereverseList(ListNodehead){ListNodecur=head,pre=null;while(cur!=null){ListNodetmp=cur.next;//暂存后继节点cur.nextcur.next=p......
  • 每日记录(线性表链式存储结构(链表))
    链表的基本概念建议每次写的时候都加一个头节点各结点由两个域组成:数据域:存储元素数值数据指针域:存储直接后继结点的存储位置结点:数据元素的存储映像。由数据域和指针域两部分组成链表:n个结点由指针链组成一个链表。它是线性表的链式存储映像,称为线性表的链式存储结构单链表......
  • 每日记录(2.3双向链表)
    双向链表的基本概念双链表顾名思义,就是链表由单向的链变成了双向链。使用这种数据结构,我们可以不再拘束于单链表的单向创建于遍历等操作,大大减少了在使用中存在的问题。每一个节点都有两个指针分别指向该节点的前驱和后继。定义:structDuLNode{EtypedeflemTypedata;......
  • 顺序表 与 链表 的优缺点比较涅~( ̄▽ ̄)~*
    顺序表  优点是可以随机存取元素,存储密度高,结构简单;        缺点是需要一片地址连续的存储空间,不便于插入和删除元素(因为插入需要将大量的元素向后移动,删除需要将后续大量的元素向前覆盖),表的容量难以确定; 链表   优点是便于结点的插入与删除(只需要修......
  • 双链表
                                              《目录》简介建模辅助方法初始化出错处理空间申请迭代器链表算法尾插遍历头插尾删头删按值插入 查找求长度按值删除排序清除与销毁逆置单链表代......