传送门:力扣

双指针迭代:pre指向NULL,cur指向head,while循环不断移动cur和pre,并且把cur->next赋给temp暂时保存,然后让cur指向pre,重复操作直到pre到尾节点,cur为NULL.达成目的

递归处理:递归其实和迭代类似,只要传参正确就可以达到节省语句的效果,(看起来也挺装逼的)

详细代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
struct ListNode {int val;ListNode* next;ListNode(int v) :val(v), next(NULL) {}
};
class Solution {
public://迭代版本ListNode* reverseList(ListNode* head) {ListNode* cur = head;ListNode* pre = NULL;while (cur) {ListNode* tmp = cur->next;//保存后节点,之后要覆盖。cur->next = pre;pre = cur;//pre向后移动一格cur = tmp;//得到之前保存的cur.next}return pre;//此时pre位于前链表的最后位置,新链表的头位置。}//递归版本ListNode* reverse(ListNode* prev, ListNode* cur) {if (cur == NULL)return prev;//归ListNode* tmp = cur->next;cur->next = prev;// 可以和双指针法的代码进行对比,如下递归的写法,其实就是做了这两步// prev = cur;// cur = tmp;return reverse(cur, tmp);}ListNode* reverseList(ListNode* head) {// 和双指针法初始化是一样的逻辑// ListNode* cur = head;// ListNode* pre = NULL;return reverse(NULL,head);}
};

Leetcode 206.反转链表(双指针迭代法和递归操作)相关推荐

  1. LeetCode 206. 反转链表 Reverse Linked List

    5-1 链表,在节点间穿针引线 Reverse Linked List 题目: LeetCode 206. 反转链表 反转一个单链表. 示例: 输入: 1->2->3->4-> ...

  2. 【LeetCode】【HOT】206. 反转链表(迭代/递归)

    [LeetCode][HOT]206. 反转链表 文章目录 [LeetCode][HOT]206. 反转链表 package hot;import java.util.Arrays;class Lis ...

  3. LeetCode 206. 反转链表(Reverse Linked List) 16

    206. 反转链表 206. Reverse Linked List 题目描述 反转一个单链表. 每日一算法2019/5/19Day 16LeetCode206. Reverse Linked Lis ...

  4. LeetCode 206. 反转链表

    206. 反转链表 难度 简单 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表. 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输 ...

  5. LeetCode 206. 反转链表 双指针法 辅助结点 递归

    题目链接 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表. 提示: 链表中节点的数目范围是 [0, 5000] -5000 <= Node.val <= 5000 进阶: ...

  6. LeetCode 206. 反转链表 思考分析

    题目 反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: 你可 ...

  7. leetcode - 206. 反转链表

    反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: 你可以迭代 ...

  8. leetcode206题:反转链表(迭代或是递归)

    题目描述: 反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 解题思 ...

  9. [leetcode] 206.反转链表

    给你单链表的头节点 head ,请你反转链表,并返回反转后的链表. 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head = [1,2] 输 ...

最新文章

  1. component-scan和annotation-driven
  2. 你真的会用java注解吗?
  3. Java运行时动态加载类之ClassLoader方法带参数
  4. 实战 :为自己的公号搭建一个数据运营指标体系
  5. .Net之微信小程序获取用户UnionID
  6. anki卡片重复_如何在Anki中使用间隔重复来学习更快的编码
  7. 210 - Concurrency Simulator
  8. php mssql扩展SQL查询中文字段名解决方法
  9. html盒子如何左对齐,【图片】怎么才能让盒子里的LI标签在实现的时候左对齐?在线等急!!!!【web前端开发吧】_百度贴吧...
  10. java jcmd,jcmd命令用法
  11. phalapi 数据库锁_2.5 PhalApi 连接多个数据库
  12. Java源文件编译出错:类文件包含错误的类 请删除该文件或确保文件位于正确的类路径子目录中
  13. 【Windows】网线直连实现两台电脑共享文件夹
  14. React18正式版发布,未来发展趋势是?
  15. 练习:编写程序判断当前系统状态
  16. Plague Inc
  17. Freebsd 8.4 Vmware 安装及软件配置
  18. 证明当x趋向于0时1-cosx的等价无穷小是(x^2/2)
  19. 一个很强的数据字典工具
  20. Quartz定时调度

热门文章

  1. 对象和json相互转换
  2. 企业如何从 0 到 1 构建整套全链路追踪体系
  3. 一文搞懂物联网Modbus通讯协议
  4. 千亿级的数据难题,优酷工程师怎么解决?
  5. 阿里CTO:阿里所有技术和产品输出都将必须通过阿里云进行
  6. Euler 今日问世!国内首个工业级的图深度学习开源框架,阿里妈妈造
  7. 【公测中】阿里云发布国内首个大数据双活容灾服务,满足高要求大数据灾备场景
  8. 走进新华三解决方案 360°业务能力中心,读懂新华三如何助力企业数字化转型
  9. Redis 会遇到的「坑」,你踩过几个?
  10. 稳定、可扩展、模块化、简化部署过程、版本控制……一文看懂 Kubernetes 到底如何运用!...