反转链表(python3)

Posted muyer

tags:

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

问题描述:

    反转一个单链表。

      示例:

        输入: 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)的主要内容,如果未能解决你的问题,请参考以下文章

每天一道面试题LeetCode 206 -- 反转链表

三行代码解反转链表

如何链表反转

反转链表

c语言,链表的反转,请写出代码,并讲解下,谢了!!!!!

代码的鲁棒性:反转链表