zoukankan      html  css  js  c++  java
  • 反转链表(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
  • 相关阅读:
    MySQL主从复制的作用?
    MySQL的逻辑架构
    SQL语句的执行流程
    Count(*)在不同引擎的实现方式
    视图
    MySQL经典练习题(五)
    pyinstaller基本操作
    git基本操作
    Ubuntu安装tensorflow
    ScrollView can host only one direct child
  • 原文地址:https://www.cnblogs.com/yejiang/p/10298274.html
Copyright © 2011-2022 走看看