Reverse a singly linked list.

分别用迭代和递归实现

struct ListNode
{int val;struct ListNode *next;
};

迭代实现:

struct ListNode* reverseList(struct ListNode* head)
{struct ListNode *pre = NULL;struct ListNode *cur = head;while( cur != NULL ){struct ListNode *after = cur->next;cur->next = pre;pre = cur;cur = after;}return pre;
}

递归实现:

1)如果head为空,或者只有head这一个节点,return head即可;

2)先遍历head->next为首的链表,得到一个头结点newHead;

3)把head赋值给head->next->next, head->next为空;

4)返回newHead。

struct ListNode* reverseList(struct ListNode* head)
{if(head == NULL || head->next == NULL)return head;struct ListNode* newHead = reverseList(head->next);head->next->next = head;head->next = NULL;return newHead;
}

转载于:https://www.cnblogs.com/evansyang/p/5446678.html

LeetCode206:Reverse Linked List相关推荐

  1. LeetCode206 | Reverse Linked List (Easy)

    题目地址(206. 反转链表) https://leetcode-cn.com/problems/reverse-linked-list/ 题目描述 反转一个单链表.示例:输入: 1->2-&g ...

  2. LeetCode 92. Reverse Linked List II--Python 解法--反转部分链表--笔试算法题

    题目地址:Reverse Linked List II - LeetCode Reverse a linked list from position m to n. Do it in one-pass ...

  3. LeetCode 206 Reverse Linked List--反转链表--迭代与递归解法--递归使用一个临时变量,迭代使用3个

    此题链接:Reverse Linked List - LeetCode Reverse a singly linked list. Example: Input: 1->2->3-> ...

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

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

  5. LeetCode 92. Reverse Linked List II

    92. Reverse Linked List II Reverse a linked list from position m to n. Do it in one-pass. 将位置m的链接列表反 ...

  6. Leetcode 206. Reverse Linked List

    Similar Questions Reverse Linked List II Binary Tree Upside Down Palindrome Linked List 思路:链表反转. 解法一 ...

  7. leetCode 206. Reverse Linked List 反转链表

    206. Reverse Linked List Reverse a singly linked list. 反转一个链表. 思路: 采用头插法,将原来链表重新插一次返回即可. 代码如下: /*** ...

  8. LeetCode Notes_#206 Reverse Linked List(C++,Python)

    LeetCode Notes_#206 Reverse Linked List(C++,Python) LeetCode Linked List  Contents 题目 思路 思考 解答 C++ P ...

  9. 反转链表 Reverse Linked List

    2018-09-11 22:58:29 一.Reverse Linked List 问题描述: 问题求解: 解法一:Iteratively,不断执行插入操作. public ListNode reve ...

最新文章

  1. 最完整代码的用php备份mysql数据库
  2. 苹果开始整治App Store恶意抄袭现象
  3. vue 下echarts卸载和安装指定版本
  4. nginx指令(alias、set、proxy_pass、rewrite、upstream)、跨域问题、防盗链、缓存、gzip压缩
  5. [HDOJ1016]Prime Ring Problem
  6. 自定义图框_Smart3D自定义图纸属性及其应用
  7. java8 base64_Java 8中的Base64 –加入乐趣为时不晚
  8. onresize的应用--自适应弹窗
  9. (转)某公司ICO涉嫌“擅自发行股票罪” 判处有期徒刑一年六个月
  10. Java LP1_Java Performance 总结(1. Class Loader)
  11. 信息系统项目管理师(2022年) —— 考试大纲
  12. java实现大文件切割分片
  13. 批济南某创华宇培训学校
  14. RxJava2.0_1:基础学习和理解
  15. msm8916的OTG接鼠标可以使用,但是接U盘无法识别。
  16. 群晖NAS Git Server项目源代码管理 配置搭建
  17. Verilog 综合练习 电子钟的实现
  18. Nginx学习日记1
  19. 通过 languagereactor 浏览器插件学英语
  20. 硬盘变RAW:文件或目录损坏且无法读取/此卷不包含可识别的文件系统等无法访问错误可直接修复...

热门文章

  1. c 语言车牌识别系统课题设计,车牌识别系统的设计--课程设计报告.doc
  2. c 跟r语言运行速度,1. R语言运行效率分析(5)
  3. java车次信息_从火车站车次公示栏来学Java读写锁
  4. UserThreadLocal 用户线程Token拦截验证
  5. 基于element-ui,vue的html随机点名器
  6. mysql查询男生基本情况_MySQL数据库技术与应用:数据查询
  7. 深搜DFS\广搜BFS 图初步入门
  8. thinkphp的增删改查
  9. Python(18)-字典dictionary、集合
  10. dedecms怎么改php版本_玩转Termux:手把手教你在手机上安装php与nginx!