反转一个单链表。

示例:

输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
进阶:
你可以迭代或递归地反转链表。你能否用两种方法解决这道题?

思路1:迭代法,代码写起来感觉啥都刚刚好,又是有逻辑的,核心就是把扫描到的节点不断的前置,就是把cur->head = newhead

然后把 newhead更新为cur,newhead = cur

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode* reverseList(ListNode* head) {ListNode* newhead = NULL;ListNode* cur = head;while(cur!=NULL){ListNode* temp = cur->next;cur->next = newhead;newhead = cur;cur = temp;}return newhead;}
};

思路2 :递归法

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode* reverseList(ListNode* head) {return reverse(NULL,head);}ListNode* reverse(ListNode* pre,ListNode* cur){if(cur==NULL) return pre;ListNode* next = cur->next;cur->next = pre;return reverse(cur,next);}
};

反转链表—leetcode206相关推荐

  1. leetcode206.反转链表 解题思路(简单)

    难度: 简单 题目:给你单链表的头结点head,请你反转链表,并返回反转后的链表. 示例1: 示例2: 示例3: 题目类型:数据结构链表 解题方法:双指针迭代法 解题思路: 1.申请两个新指针,分别指 ...

  2. [Swift]LeetCode206. 反转链表 | Reverse Linked List

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

  3. LeetCode-206 反转链表

    文章目录 题目描述 思路 解法一 解法二 总结 Github 题目描述 反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4- ...

  4. leetcode206. 反转链表

    再来亿遍反转链表 上码 class Solution {public:ListNode* reverseList(ListNode* head) {/**思路:我们反转指针即可1->2-> ...

  5. leetcode206 反转链表

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

  6. 翻转链表python递归_Python LeetCode-206.反转链表(难度-简单) 两个方法-迭代和递归,以及超简写法(python)...

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

  7. PAT (Basic Level) Practise (中文)-1025. 反转链表 (25)

    PAT (Basic Level) Practise (中文)-1025. 反转链表 (25)   http://www.patest.cn/contests/pat-b-practise/1025 ...

  8. 剑指offer:面试题24. 反转链表

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

  9. leetcode-92 反转链表II

    题目描述如下: 反转从位置 m 到 n 的链表.请使用一趟扫描完成反转. 说明: 1 ≤ m ≤ n ≤ 链表长度. 示例: 输入: 1->2->3->4->5->NUL ...

最新文章

  1. PyTorch 笔记(12)— Tensor 持久化、向量化、torch.set_num_threads、torch.set_printoptions
  2. 安卓模拟器BlueStacks 安装使用教程(图解)
  3. 【FI模块学习笔记】 固定资产概述(上)
  4. 日志服务(Log service)4月控制台更新指南
  5. Lambda表达式的标准格式【理解】
  6. IIS7 MVC网站生成、发布
  7. Java DataInputStream readShort()方法(带示例)
  8. 程序布置到服务器上速度慢_百战程序员python面试题总结---高级语法(4)
  9. day68_淘淘商城项目_01
  10. 牛客(基础位运算)起床困难症
  11. 架构师之路读书会 | 15分钟一本,让我为你精读100本好书,快来加入吧!
  12. 在 Linux 下用 CMAKE 编译安装 OpenCV 3.2.0
  13. 手机图片怎么做成笔记 手机照片笔记怎么制作
  14. Nginx动静分离配置
  15. 二阶倒立摆matlab建模与仿真,二级倒立摆的建模与MATLAB仿真.pdf
  16. C语言中for循环的一些坑!!!
  17. 【linux中Telnet服务的安装】
  18. win10用户账户控制怎么取消或打开
  19. Android 记事本
  20. 计算机音乐制作专业 考研,音乐专业考研院校排名

热门文章

  1. Python的3种执行方式
  2. Exif文件格式描述
  3. Shell-11--for
  4. C#与C++ DLL的交互
  5. python——面向对象篇之异常和反射
  6. POST教程笔记 - WinHttp获取网页源码
  7. MySQL性能调优与架构设计——第4章 MySQL安全管理
  8. [Python]ConfigParser解析配置文件
  9. web.xml 通过contextConfigLocation配置spring 的方式
  10. PHP代码审计基础手册