为什么此代码运行时没有错误?反向链接列表

时间:2019-01-30 20:26:49

标签: python python-2.7

给出一个链表,编写一个函数以反转每k个节点(其中k是该函数的输入)。

Examples:

Inputs:  1->2->3->4->5->6->7->8->NULL and k = 3 
Output:  3->2->1->6->5->4->8->7->NULL. 

Inputs:   1->2->3->4->5->6->7->8->NULL and k = 5
Output:  5->4->3->2->1->8->7->6->NULL.

这是代码:

# Node class 
class Node: 

    # Constructor to initialize the node object 
    def __init__(self, data): 
        self.data = data 
        self.next = None

class LinkedList: 

    # Function to initialize head 
    def __init__(self): 
        self.head = None

    def reverse(self, head, k): 
        current = head 
        Next = None
        prev = None
        count = 0

        # Reverse first k nodes of the linked list 
        while(current is not None and count < k): 
            Next = current.next
            current.next = prev 
            prev = current 
            current = Next
            count += 1

        # next is now a pointer to (k+1)th node 
        # recursively call for the list starting 
        # from current . And make rest of the list as 
        # next of first node 
        if Next is not None: 
            head.next = self.reverse(Next, k) 

        # prev is new head of the input list 
        return prev 

    # Function to insert a new node at the beginning 
    def push(self, new_data): 
        new_node = Node(new_data) 
        new_node.next = self.head 
        self.head = new_node 

    # Utility function to print the linked LinkedList 
    def printList(self): 
        temp = self.head 
        while(temp): 
            print temp.data, 
            temp = temp.next


# Driver program 
llist = LinkedList() 
llist.push(9) 
llist.push(8) 
llist.push(7) 
llist.push(6) 
llist.push(5) 
llist.push(4) 
llist.push(3) 
llist.push(2) 
llist.push(1) 

print "Given linked list"
llist.printList() 
llist.head = llist.reverse(llist.head, 3) 

print "\nReversed Linked list"
llist.printList() 

在我的计算机上,此代码给我一个错误,提示"LinkedList class has no attribute next" =>此语句"Next = current.next"中的错误。在Geeks for Geeks上,代码运行良好。同样,在所有在线IDE上,代码都可以正常运行。那么我的设备出了点问题,或者代码不应该运行吗?

0 个答案:

没有答案