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

Leetcode 反转链表

时间:2024-03-25 22:45:13浏览次数:22  
标签:head prev ListNode 反转 next 链表 curr null Leetcode

Day 10 刷题

####### 力扣官方解答:用节点作为交换方式,而非其中的值,通过增加一个空null,来使得指向完全相反。
#######迭代法:

class Solution {
    public ListNode reverseList(ListNode head) {
        ListNode prev = null;
        ListNode curr = head;
        while (curr != null) {
            ListNode next = curr.next;
            curr.next = prev;
            prev = curr;
            curr = next;
        }
        return prev;
    }
}

#######递归法:看不懂

class Solution {
    public ListNode reverseList(ListNode head) {
        if (head == null || head.next == null) {
            return head;
        }
        // 两个节点为一组,
        ListNode newHead = reverseList(head.next);
        head.next.next = head;
        head.next = null;
        return newHead;
    }
}

标签:head,prev,ListNode,反转,next,链表,curr,null,Leetcode
From: https://www.cnblogs.com/xytang-mini-juan/p/18095584

相关文章

  • 代码随想录第四天 链表Part02
    语言:Java参考资料:代码随想录、ChatGPT3.524.两两交换链表中的节点力扣题目链接(opensnewwindow)给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。思路这道题目正常模拟就可以了。建议......
  • 【每日算法】理论:AIGC模型 刷题:力扣链表操作
    上期文章【每日算法】理论:图像分割相关刷题:设计链表文章目录上期文章一、上期问题二、理论问题1、LAMAInpaint2、IPadapter模型3、Anydoor4、vit(VisionTransformer)架构5、MAE6、CLIP模型三、力扣刷题回顾-链表操作203.移除链表元素206.反转链表24.两两交换链表......
  • 实现双向链表
    1classNode{2intdata;3Nodenext;4Node(intdata){5this.data=data;6}7}8publicclassMyNodes{9privateNodehead;10privateNodelast;11privateintsize;12publicNodeget(intindex){13......
  • 速通数据结构第三站 单链表
    系列文章目录速通数据结构与算法系列1  速通数据结构与算法第一站复杂度          http://t.csdnimg.cn/sxEGF2  速通数据结构与算法第二站顺序表 3 速通数据结构与算法第二站单链表 感谢佬们支持!目录系列文章目录前言一、单链表   ......
  • L2-022 重排链表(25分) c++代码
    给定一个单链表 L1​→L2​→⋯→Ln−1​→Ln​,请编写程序将链表重新排列为 Ln​→L1​→Ln−1​→L2​→⋯。例如:给定L为1→2→3→4→5→6,则输出应该为6→1→5→2→4→3。输入格式:每个输入包含1个测试用例。每个测试用例第1行给出第1个结点的地址和结点总个数,即正整数N (......
  • 代码随想录算法训练营Day54 ||leetCode 392.判断子序列 || 115.不同的子序列
    392.判断子序列 双指针遍历,比较简单易懂classSolution{public:boolisSubsequence(strings,stringt){inta=0,b=0;while(a<s.size()&&b<t.size()){if(s[a]==t[b]){a++;}......
  • 代码随想录算法训练营Day55 ||leetCode 583. 两个字符串的删除操作 || 72. 编辑距离
    583. 两个字符串的删除操作 这道题的状态方程比上一题简单一些初始化如下classSolution{public:intminDistance(stringword1,stringword2){vector<vector<int>>dp(word1.size()+1,vector<int>(word2.size()+1));for(inti=0;i......
  • 代码随想录算法训练营Day51 ||leetCode 309.最佳买卖股票时机含冷冻期 || 714.买卖股
    309.最佳买卖股票时机含冷冻期  需要新添加状态classSolution{public:intmaxProfit(vector<int>&prices){intn=prices.size();if(n==0)return0;vector<vector<int>>dp(n,vector<int>(4,0));dp[0][0]......
  • 代码随想录算法训练营Day52 ||leetCode 300.最长递增子序列 || 674. 最长连续递增序列
    300.最长递增子序列 classSolution{public:intlengthOfLIS(vector<int>&nums){if(nums.size()<=1)returnnums.size();vector<int>dp(nums.size(),1);intresult=0;for(inti=1;i<nums.size......
  • leetcode113
    https://leetcode.cn/problems/path-sum-ii点击查看代码classSolution{publicList<List<Integer>>pathSum(TreeNoderoot,inttargetSum){List<List<Integer>>ans=newArrayList<>();List<Integer>pat......