leetcode-206翻转链表

关注囧囧妹了解更多的编程知识

题目:

  • 反转一个单链表。可以迭代或递归地反转链表。

  • 示例:输入: 1->2->3->4->5->NULL;输出: 5->4->3->2->1->NULL。

算法说明:

声明两个临时变量tmp和prev,且初始值为NULL;

当遍历节点不为NULL则循环以下四步:

    1,将链表要翻转的当前节点的next节点保存到tmp;

    2,将当前节点的next节点指向前一个节点prev;

    3,更新前一个节点prev为当前节点;

    4,更新遍历的节点为tmp;

解法:

【1】C语言解法:

复制代码
 1 /**
 2  * Definition for singly-linked list.
 3  * struct ListNode {
 4  *     int val;
 5  *     struct ListNode *next;
 6  * };
 7  */
 8 
 9 
10 struct ListNode* reverseList(struct ListNode* head){
11     struct ListNode *tmp = NULL;
12     struct ListNode *prev = NULL;
13 
14     while(head != NULL)
15     {
16         tmp = head->next;
17         head->next = prev;
18         prev = head;
19         head = tmp;
20     }
21     return prev;
22 }
复制代码

结果:

【2】go语言解法:

复制代码
 1 /**
 2  * Definition for singly-linked list.
 3  * type ListNode struct {
 4  *     Val int
 5  *     Next *ListNode
 6  * }
 7  */
 8 func reverseList(head *ListNode) *ListNode {
 9     var cur *ListNode
10     var prev *ListNode
11     cur = nil
12     prev = nil
13 
14     for head != nil{
15         cur = head.Next
16         head.Next = prev
17         prev = head
18         head = cur
19     }
20     return prev
21 }
复制代码

结果:

【3】python语言解法:

复制代码
 1 # Definition for singly-linked list.
 2 # class ListNode(object):
 3 #     def __init__(self, x):
 4 #         self.val = x
 5 #         self.next = None
 6 
 7 class Solution(object):
 8     def reverseList(self, head):
 9         """
10         :type head: ListNode
11         :rtype: ListNode
12         """
13         cur,prev = head,None
14         while cur:
15             cur.next,prev,cur = prev,cur,cur.next
16         return prev
复制代码

结果:

posted @   善辰  阅读(130)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
点击右上角即可分享
微信分享提示