博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode Reverse Linked List
阅读量:7106 次
发布时间:2019-06-28

本文共 1070 字,大约阅读时间需要 3 分钟。

LeetCode解题之Reverse Linked List


原题

翻转一个单向链表。

注意点:

样例:

输入: 1->2->3

输出: 3->2->1

解题思路

很基础的一道题。前后两个指针。把后指针指向的节点的next指向前节点,在此之前用一个暂时变量存储后指针原来的后一个节点以保证可以不断更新前后指针的位置。最后不要忘记把原先的头节点的next置为空,由于它如今是最后一个节点。

AC源代码

# Definition for singly-linked list.class ListNode(object):    def __init__(self, x):        self.val = x        self.next = None    def to_list(self):        return [self.val] + self.next.to_list() if self.next else [self.val]class Solution(object):    def reverseList(self, head):        """        :type head: ListNode        :rtype: ListNode        """        if not head:            return None        prev = head        curr = prev.next        while curr:            next = curr.next            curr.next = prev            prev = curr            curr = next        head.next = None        return previf __name__ == "__main__":    n1 = ListNode(1)    n2 = ListNode(2)    n3 = ListNode(3)    n1.next = n2    n2.next = n3    r = Solution().reverseList(n1)    assert r.to_list() == [3, 2, 1]

欢迎查看我的 () 来获得相关源代码。

转载于:https://www.cnblogs.com/yutingliuyl/p/7007312.html

你可能感兴趣的文章
VUE 动态切换列表active样式
查看>>
【转载】线程同步
查看>>
android 流行框架的使用
查看>>
Windows Phone 7中用好Silverlig“.NET研究”ht开发利器
查看>>
互联网周刊:互联网进化论,互联网营销
查看>>
ios11 bug总结
查看>>
cakephp上传组件教程
查看>>
flume【源码分析】分析Flume的启动过程
查看>>
经典算法 Manacher算法详解
查看>>
关于System.out.println()与System.out.print("\n")的区别
查看>>
HRMS(人力资源管理系统)-从单机应用到SaaS应用-架构分析(功能性、非功能性、关键约束)-下篇...
查看>>
2017-2018-2 20155225《网络对抗技术》实验四 恶意代码分析
查看>>
POCO exception
查看>>
JSON语法与JavaScript语法的区别
查看>>
ACID理论
查看>>
VC无闪烁刷屏技术的实现
查看>>
DBUtils使用(对jdbc的封装)
查看>>
JAVA ThreadPoolExecutor(转)
查看>>
使用Java+MySQL+Apache开发后台项目(一)
查看>>
Facebook ios sdk 3.10 openActiveSessionWithReadPermissions doesn't callback using web login
查看>>