β

leetcode 反转链表 python

Waiting For You 79 阅读

反转一个单链表。

示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
进阶:
你可以迭代或递归地反转链表。你能否用两种方法解决这道题?

# 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
        """
        current = head
        nextNode = None
        h = head
        while current is not None and  current.next is not None:
            nextNode = current.next
            if nextNode.next is not None:
                tmpNode = current.next
                current.next = nextNode.next
                tmpNode.next = h
                
            else:
                current.next = None
                nextNode.next = h
            h = nextNode    
            
        return h

http://www.waitingfy.com/archives/4503

作者:Waiting For You
记录一些关于android,cocos2d-x,objective-c,mfc,directX,c++,数学的东西
原文地址:leetcode 反转链表 python, 感谢原作者分享。