python实现单链表翻转

题目描述:

 

翻转一个链表

 

样例

给出一个链表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

 

posted @ 2018-08-24 22:04  耐烦不急  阅读(992)  评论(0编辑  收藏  举报