前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Leetcode 206. Reverse Linked List 链表翻转 Python 两种解法

Leetcode 206. Reverse Linked List 链表翻转 Python 两种解法

作者头像
大鹅
发布2021-06-15 15:54:43
5690
发布2021-06-15 15:54:43
举报
文章被收录于专栏:大鹅专栏:大数据到机器学习

问题描述

Reverse a singly linked list. 翻转一个链表

#1

第一种方法:迭代

代码语言:javascript
复制
class ListNode(object):
    def __init__(self, x):
        self.val = x
        self.next = None

class Solution(object):
    def reverseList(self, head):
        """
        :type head: ListNode
        :rtype: ListNode
        """
        pre = cur = None
        if head:
            pre = head
            cur = head.next
            pre.next = None
        else:
            return None
        while cur:
            p = cur
            cur = cur.next
            p.next = pre
            pre = p
        return pre

#2

第二种方法:递归

代码语言:javascript
复制
class ListNode(object):
    def __init__(self, x):
        self.val = x
        self.next = None
class Solution:
    def reverseList(self, head):
        return reverse(head)

    def reverse(self, node, prev=None):
        if not node:
            return prev
        n = node.next
        node.next = prev
        return reverse(n, node)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/03/15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题描述
  • #1
  • #2
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档