问题

该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/3828 访问。

反转一个单链表。

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

进阶:
你可以迭代或递归地反转链表。你能否用两种方法解决这道题?


Reverse a singly linked list.

Input: 1->2->3->4->5->NULL

Output: 5->4->3->2->1->NULL

Follow up:

A linked list can be reversed either iteratively or recursively. Could you implement both?


示例

该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/3828 访问。

public class Program {public static void Main(string[] args) {var head = new ListNode(1) {next = new ListNode(2) {next = new ListNode(3) {next = new ListNode(4) {next = new ListNode(5)}}}};var res = ReverseList(head);ShowArray(res);head = new ListNode(10) {next = new ListNode(7) {next = new ListNode(23) {next = new ListNode(86) {next = new ListNode(56)}}}};res = ReverseList2(head);ShowArray(res);Console.ReadKey();}private static void ShowArray(ListNode list) {var node = list;while(node != null) {Console.Write($"{node.val} ");node = node.next;}Console.WriteLine();}private static ListNode ReverseList(ListNode head) {var node = head;ListNode pre = null;while(node != null) {var temp = node.next;node.next = pre;pre = node;node = temp;}return pre;}private static ListNode ReverseList2(ListNode head) {if(head == null || head.next == null) return head;var result = ReverseList2(head.next);head.next.next = head;head.next = null;return result;}public class ListNode {public int val;public ListNode next;public ListNode(int x) { val = x; }}}

以上给出2种算法实现,以下是这个案例的输出结果:

该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/3828 访问。

5 4 3 2 1
56 86 23 7 10

分析:

显而易见,以上2种算法的时间复杂度均为:  。

C#LeetCode刷题之#206-反转链表(Reverse Linked List)相关推荐

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

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

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

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

  3. 卷进大厂系列之LeetCode刷题笔记:反转链表(简单)

    学算法,刷力扣,加油卷,进大厂! 题目描述 力扣题目链接 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表. 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3 ...

  4. 【力扣刷题】206. 反转链表 (简单,我难)

    题目: 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表. 示例1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 解题思路: 首先生成一个空列表ar,遍历 ...

  5. C#LeetCode刷题之#141-环形链表(Linked List Cycle)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3901 访问. 给定一个链表,判断链表中是否有环. 进阶: 你能否 ...

  6. LeetCode刷题 --杂篇 --数组,链表,栈,队列

    武汉加油,中国加油.希望疫情早日结束. 由于疫情,二狗寒假在家不能到处乱逛,索性就在家里系统的刷一下算法的内容,一段时间下来倒也有些小小的收获.只是一来家中的小破笔记本写起博客来实在不是很顺手,二来家 ...

  7. 【leetcode刷题】16.环形链表——Java版

    ⭐欢迎订阅<leetcode>专栏,每日一题,每天进步⭐ 使用快慢指针,若指针相遇则判断有环 --leetcode此题热评 前言 哈喽,大家好,我是一条. 糊涂算法,难得糊涂 Questi ...

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

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

  9. 反转链表 Reverse Linked List

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

最新文章

  1. 专访清华陈文光:搞好CS基础建设再寻思AI专业,读博与否?看个人能力
  2. java写入文件编码格式为ansi_Java读取、写入文件如何解决乱码问题
  3. QT的QTransform类的使用
  4. MyBatis(四)MyBatis插件原理
  5. IterableThread
  6. 杭电1599 find the mincost route
  7. C语言/C++基础知识代码整理
  8. html图片浮空但占位置,求助:鼠标经过图片时,图片悬浮出现变大
  9. 超分辨率分析(四)--Deep Image Prior
  10. laravel 数据库操作之查询构造器
  11. VS code 完全清除终端内容
  12. ANSYS workench 物体受力分析
  13. java商家查询订单功能_查询订单详情示例代码
  14. SpringBoot整合Quartz--使用/教程/实例
  15. 软件项目管理读书体会
  16. 随机森林 n_estimators参数 max_features参数
  17. 如何批量修改文件名字的一部分?
  18. 人工智能的兴起和拟人机器人问世使这个比喻更令人喜闻乐见
  19. 机顶盒联机调试的方法
  20. Dick and Jane ZOJ1110

热门文章

  1. C/C++——朴素的模式匹配算法和KMP模式匹配算法
  2. 【今日CV 视觉论文速览】Tue 21 Mar 2019
  3. 利用matlab点云工具处理点云
  4. 线程休眠 java 1615477264
  5. 爬虫-09-get请求发起-响应对象的属性了解-练习图片的爬取
  6. django-数据库的操作-原始版本-表格的查询
  7. javascript-定时器演练-时钟-Date类
  8. javascript函数节流、防抖及使用场景
  9. Algs4-1.3.33矩阵库
  10. Debian系linux系统常用配置软件源