算法提高之LeetCode刷题数据结构和算法分析

反转链表

2020-02-22  本文已影响0人  _阿南_

题目:

定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
限制:
0 <= 节点个数 <= 5000

题目的理解:

单项列表的所有节点的反转。

python实现

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def reverseList(self, head: ListNode) -> ListNode:
        if head is None:
            return None
        
        nodeList = list()
        current = head
        
        while current.next is not None:
            nodeList.append(current)
            
            current = current.next
        
        nodeList.reverse()   
        node_current = current
        
        for node in nodeList:
            node_current.next = node
            
            node_current = node
        
        node_current.next = None
            
        return current

提交

成功

// END 柳树发芽了,春天已经来了

上一篇 下一篇

猜你喜欢

热点阅读