码迷,mamicode.com
首页 > 编程语言 > 详细

反转链表(python3)

时间:2019-01-21 16:03:53      阅读:405      评论:0      收藏:0      [点我收藏+]

标签:code   link   node   代码   nbsp   while   turn   one   efi   

问题描述:

    反转一个单链表。

      示例:

        输入: 1->2->3->4->5->NULL
        输出: 5->4->3->2->1->NULL
解法1:
  单链表的逆置显然很容易联想到头插法,但是头插法都是有头结点,所以需要申明一个头结点作为辅助,返回时返回头节点后的一个节点(即为头指针)
# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def reverseList(self, head):
        """
        :type head: ListNode
        :rtype: ListNode
        """
        #带头节点:用头插法;这里是不带头节点
        p =head
        h = ListNode(0)#建立头结点
        while p:
            q = p.next
            p.next = h.next
            h.next = p
            p = q
        return h.next 

 


解法2:
#别人大神的代码,简洁明了
class Solution:
    def reverseList(self, head):
        """
        :type head: ListNode
        :rtype: ListNode
        """
        p, rev = head, None
        while p:
            rev, rev.next, p = p, rev, p.next
        return rev

 

反转链表(python3)

标签:code   link   node   代码   nbsp   while   turn   one   efi   

原文地址:https://www.cnblogs.com/yejiang/p/10298274.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!