剑指 Offer(第2版)面试题 24:反转链表

剑指 Offer(第2版)面试题 24:反转链表

剑指 Offer(第2版)面试题 24:反转链表

题目来源:35. 反转链表

解法1:迭代

做烂了的题目,秒了。

代码:

/**
 * 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)
	{
   
		if (head == nullptr)
			return nullptr;
		ListNode *pRevesedHead = nullptr;
		ListNode *cur = head, *pre = nullptr;
		while (cur)
		{
   
			ListNode *nxt = cur->next;
			if (nxt == nullptr)
			    pRevesedHead = cur;
			cur->next = pre;
			pre = cur;
			cur = nxt;
		}
		return pRevesedHead;
	}
};

复杂度分析:

时间复杂度:O(n),其中 n 是链表的长度。需要遍历链表一次。

空间复杂度:O(1)。

解法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)
	{
   
		if (head == nullptr || head->next == nullptr)
			return head;
		ListNode *pReversedHead = reverseList(head->next);
		head->next->next = head;
		head->next = nullptr;
		return pReversedHead;
	}
};

复杂度分析:

时间复杂度:O(n),其中 n 是链表的长度。需要对链表的每个节点进行反转操作。

空间复杂度:O(n),其中 n 是链表的长度空间复杂度主要取决于递归调用的栈空间,最多为 n 层。

相关推荐

  1. Offer2版)面试题 24

    2023-12-12 08:32:06       46 阅读
  2. Offer2版)面试题 27:二叉树的镜像

    2023-12-12 08:32:06       42 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-12 08:32:06       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-12 08:32:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-12 08:32:06       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-12 08:32:06       20 阅读

热门阅读

  1. Network Repo Installation for Ubuntu(gds)

    2023-12-12 08:32:06       39 阅读
  2. 如何截取Hive数组中的前N个元素?

    2023-12-12 08:32:06       39 阅读
  3. C# DI依赖注入

    2023-12-12 08:32:06       37 阅读
  4. Linux中tar命令详解

    2023-12-12 08:32:06       30 阅读
  5. 选择排序和堆排序

    2023-12-12 08:32:06       36 阅读
  6. 个人博客搭建保姆级教程-Nginx篇

    2023-12-12 08:32:06       47 阅读
  7. 【Hadoop】修改YARN配置文件

    2023-12-12 08:32:06       32 阅读