LintCode Python 简单级题目 35.翻转链表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LintCode Python 简单级题目 35.翻转链表相关的知识,希望对你有一定的参考价值。

题目描述:

 

翻转一个链表

 

样例

给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null

 

挑战 

在原地一次翻转完成

 

 

题目分析:

在原地一次翻转完成

循环head链表,将链表中的元素从表头依次取出指向新链表即可。

源码:

"""
Definition of ListNode

class ListNode(object):

    def __init__(self, val, next=None):
        self.val = val
        self.next = next
"""
class Solution:
    """
    @param head: The first node of the linked list.
    @return: You should return the head of the reversed linked list. 
                  Reverse it in-place.
    """
    def reverse(self, head):
        # write your code here
        if head is None: return None
        p = head
        cur = None
        pre = None
        while p is not None:
            cur = p.next
            p.next = pre
            pre = p
            p = cur
        return pre

  

以上是关于LintCode Python 简单级题目 35.翻转链表的主要内容,如果未能解决你的问题,请参考以下文章

LintCode Python 简单级题目 82.落单的数

LintCode Python 简单级题目 517.丑数

LintCode Python 简单级题目 373.奇偶分割数组

LintCode Python 简单级题目 423.有效的括号序列

LintCode Python 简单级题目 39.恢复旋转排序数组

LintCode Python 简单级题目 60.搜索插入位置