首页 > 其他分享 >剑指Offer——24.反转链表(c语言)

剑指Offer——24.反转链表(c语言)

时间:2023-04-22 14:11:35浏览次数:41  
标签:24 ListNode struct Offer 链表 pCur pPre NULL

title: 剑指Offer 24.反转链表(c语言)

定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。

示例:

输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL

限制:
$$
0 \leqslant 节点个数 \leqslant 5000
$$
代码如下:

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */


struct ListNode* reverseList(struct ListNode* head){
    struct ListNode *pPre = NULL;
    struct ListNode *pCur = head;
    struct ListNode *pNex = NULL;

    while(pCur)
    {
        pNex = pCur->next;
        pCur->next = pPre;
        pPre = pCur;
        pCur = pNex;
    }
    return pPre;
}

执行结果:

通过

显示详情

执行用时:4 ms, 在所有 C 提交中击败了91.79%的用户

内存消耗:6.1 MB, 在所有 C 提交中击败了98.59%的用户

标签:24,ListNode,struct,Offer,链表,pCur,pPre,NULL
From: https://www.cnblogs.com/blue-Suri/p/17342970.html

相关文章

  • 力扣——21.合并两个有序链表(c语言)
    title:力扣——21.合并两个有序链表(c语言)将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4,1->3->4输出:1->1->2->3->4->41、递归实现:/***Definitionforsingly-linkedlist.*structListNode{......
  • 力扣——83.删除排序链表中的重复元素(c语言)
    title:力扣——83.删除排序链表中的重复元素(c语言)题目描述:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例1:输入:1->1->2输出:1->2示例2:输入:1->1->2->3->3输出:1->2->3代码如下:/***Definitionforsingly-linkedlist.*structListNode{*......
  • 力扣——240.搜索二维数组II(c语言)
    title:力扣——240.搜索二维数组II(c语言)同《剑指offer》04题目描述:编写一个高效的算法来搜索mxn矩阵matrix中的一个目标值target。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例1:输入:matrix=[[1,4,7,11,15],[2,5,8,12,19],......
  • P1241 括号序列
    题目描述定义如下规则:空串是「平衡括号序列」若字符串\(S\)是「平衡括号序列」,那么\(\texttt{[}S\texttt]\)和\(\texttt{(}S\texttt)\)也都是「平衡括号序列」若字符串\(A\)和\(B\)都是「平衡括号序列」,那么\(AB\)(两字符串拼接起来)也是「平衡括号序列」。例如,下......
  • 1241.二分法求函数零点 | 浮点二分
    1241二分法求函数的零点题目来源信息学奥赛一本通题目描述\(有函数:f(x)=x5−15x4+85x3−225x2+274x−121.已知f(1.5)>0,f(2.4)<0且方程f(x)=0在区间[1.5,2.4]有且只有一个根,请用二分法求出该根。\)输出要求\(该方程在区间[1.5,2.4]中的根。要求四舍五入到小数点后6位。\)......
  • #yyds干货盘点# LeetCode面试题:删除排序链表中的重复元素
    1.简述:给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回已排序的链表 。 示例1:输入:head=[1,1,2]输出:[1,2]示例2:输入:head=[1,1,2,3,3]输出:[1,2,3]2.代码实现:classSolution{publicListNodedeleteDuplicates(ListNodehead){......
  • 707设计链表
    力扣刷题707.设计链表--day3吸取经验OR不足之处对于c++中的类的基础知识不熟,以及结构,结构与类,结构和类中的方法与属性好好看懂这个结构设计:classMyLinkedList{public:structListNode{intval;ListNode*n......
  • 2023.3.24 【字符串】AC自动机
    2023.3.24【模板】AC自动机题目描述有这样一个问题:给定\(n\)个模式串\(s_i\)和一个文本串\(t\),求有多少个不同的模式串在文本串里出现过。两个模式串不同当且仅当他们编号不同。题面多简单qwq如果我们简化一下这个问题,模式串和文本串都只有一个,那么我们就可以用一个10......
  • 《花雕学AI》24:如何用万能Prompt公式与ChatGPT进行高效的对话测试
    引言你是否想要与人工智能进行有趣、有价值、有说服力的对话?你是否想要使用ChatGPT这个强大而灵活的对话生成器来创造出任何类型和主题的对话?如果是这样,那么你需要了解一个简单而强大的工具,就是万能Prompt公式。万能Prompt公式是一种用于生成任何类型和主题的对话的模板,它可以帮......
  • 剑指 Offer II 005. 单词长度的最大乘积
    题目链接:剑指OfferII005.单词长度的最大乘积方法:转化为二进制位+位运算解题思路将\(words[i]\)字符串中包含的字母转换为二进制位上的\(1\),字符'a'对应二进制中的第\(0\)位上的\(1\),这样每个字符串就对应一个二进制数。通过两个字符串的二进制数进行'&'运算,......