**定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL

限制:
0 <= 节点个数 <= 5000**

这道题可以通过两个一前一后的指针来实现;先定义一个指针p和head一样指向第一个节点,然后再定义一个指向NULL的指针q位于p的后面,也就是head的前面,让p指向的节点的指针域反过来指向q,p不断向前移动直到走到链表末尾NULL结束,此时的q就是新的头节点;
代码如下:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/struct ListNode* reverseList(struct ListNode* head)
{struct ListNode* p=head;struct ListNode* q=NULL;struct ListNode* t=p;//如果不设t则p->next指向q后p再无法继续向前移动了while(p!=NULL){t=t->next;p->next=q;//将p的指针域反过来指向p之前的qq=p;//q向前走到p的位置;p=t;//p向前走到下一个节点的位置}return q;
}

代码小改一下:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/struct ListNode* reverseList(struct ListNode* head)
{struct ListNode* p=head;struct ListNode* q=NULL;while(p!=NULL){struct ListNode* t=p->next;p->next=q;q=p;p=t;}return q;
}

意思都是一样的,看个人理解吧。

剑指 Offer 24. 反转链表(C语言)相关推荐

  1. 《LeetCode力扣练习》剑指 Offer 24. 反转链表 Java

    <LeetCode力扣练习>剑指 Offer 24. 反转链表 Java 一.资源 题目: 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 示例: 输入: 1-& ...

  2. 【LeetCode】剑指 Offer 24. 反转链表

    剑指 Offer 24. 反转链表 文章目录 剑指 Offer 24. 反转链表 一.迭代 二.递归 总结 一.迭代 在遍历链表时,将当前节点的 next 指针改为指向前一个结点.由于结点没有引用其前 ...

  3. 【双100%解法】剑指 Offer 24. 反转链表

    立志用最少的代码做最高效的表达 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 示例: 输入: 1->2->3->4->5->NULL 输出: ...

  4. 剑指offer 24. 反转链表

    1.问题描述 输入一个链表的头结点,反转链表后,输出新链表的表头. 2. 解决思路 1)链表是空的:直接返回空的头结点: 2)链表中只有一个结点:直接返回原头结点: 3)链表中有大于2个以上的结点:需 ...

  5. 剑指 Offer 24.反转链表

    题目 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 题目链接:反转链表 示例: 输入: 1->2->3->4->5->NULL 输出: 5-& ...

  6. Leetcode 剑指 Offer 24. 反转链表 (每日一题 20210823)

    定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点.示例:输入: 1->2->3->4->5->NULL 输出: 5->4->3-> ...

  7. 【算法】剑指 Offer 24. 反转链表

    1.概述 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof 定义一个函数,输入一个链表的头节点, ...

  8. 剑指 Offer 24. 反转链表java

    定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3-&g ...

  9. 剑指Offer 24 反转链表

    迭代的思想就是利用pre和cur两个指针,然后逐步向后遍历 # Definition for singly-linked list. # class ListNode: # def __init__( ...

最新文章

  1. java arraylist 序列化_专题二、ArrayList序列化技术细节详解
  2. 【响应式Web前端设计】new Option()函数的作用(三区联动)
  3. jquery zoom jquery放大镜特效
  4. Java 向上类型转换与向下类型转换的理解【复习】
  5. 一行 Python 代码制作七夕节爱心
  6. C#XmlDocument无法读取utf-16文件
  7. c语言中continue语句的作用是什么
  8. 【模式识别】特征评价和可分性判据实验报告及MATLAB仿真
  9. 基于阿里云实现游戏数据运营(附Demo)
  10. 19秋学期南开c语言在线作业,南开19秋学期(1709、1803、1809、1903、1909)《C语言程序设计》在线作业满分答案1...
  11. java虚拟机内存模型与垃圾回收知识复习总结
  12. bash环境变量配置
  13. Unit Testing with JUnit - Tutorial
  14. android recyclerview item自适应高度_web前端学习:高度自适应知识点
  15. php mysql sql model_PHP数据库模型
  16. 【转】所需即所获:像 IDE 一样使用 vim
  17. 2022年下半年(软考高级)信息系统项目管理师报名条件
  18. 开源公告|微信云端深度学习推理框架WeChat TFCC开源啦!
  19. python股票预测_python用线性回归预测股票价格的实现代码
  20. iVMS-4200 Vs区别_68790红单足球预测 法甲 21:00 安格斯 VS 梅斯

热门文章

  1. 一张图读懂八大全国一体化算力网络国家枢纽节点一览
  2. 塞内加尔将于5月启用全国首个大型数据中心
  3. ML:MLOps系列讲解之《MLOps Stack Canvas堆栈画布之MLOps Stack CanvasCRISP-ML(Q)》解读
  4. CV:计算机视觉基础之图像存储到计算机的原理daiding
  5. 成功解决Fit Failed Warning: Estimator fit failed. The score on this train-test partition for these param
  6. 成功解决ModuleNotFoundError: No module named 'utils'
  7. Python语言学习之字母A开头函数使用集锦:assert用法之详细攻略
  8. ML之SR:Softmax回归(Softmax Regression)的简介、使用方法、案例应用之详细攻略
  9. 成功解决 AttributeError: module 'tensorflow' has no attribute 'sub'
  10. BlockChain:Py实现区块链简单场景应用:程序猿记录在区块里的收入记录图