【发布时间】:2021-08-10 15:01:27
【问题描述】:
class Node:
def __init__(self, dataval=None):
self.dataval = dataval
self.nextval = None
class LinkedList:
def __init__(self):
self.headval = None
def __iter__(self):
return self.headval
def printList(self):
printval = self.headval
while printval is not None:
print(printval.dataval)
printval = printval.nextval
def addBeginning(self, newdata):
NewNode = Node(newdata)
NewNode.nextval = self.headval
self.headval = NewNode
def rotateRight(head, k):
listLength = 1
listTail = head.headval
while listTail.nextval is not None:
listTail = listTail.nextval
listLength += 1
offset = abs(k) % listLength
newTailPos = listLength - offset if k > 0 else offset
newTail = head.headval
for i in range(1, newTailPos):
newTail = newTail.nextval
print(newTail)
newHead = newTail.nextval
newTail.nextval = None
listTail.nextval = head.headval
return newHead
llist = LinkedList()
llist.headval = Node(1)
e2 = Node(2)
e3 = Node(3)
e4 = Node(4)
e5 = Node(5)
llist.headval.nextval = e2
e2.nextval = e3
e3.nextval = e4
e4.nextval = e5
llist.addBeginning(0)
rotateRight(llist, 3)
我想创建一个函数,它将获取一个链表并将其向右旋转 k 个位置。我尝试调试代码,但我不断将<__main__.Node object at 0x04E2AA30> 作为返回值。
如何将其转换为我想要的数据类型,如字符串或整数?
假设我有一个函数
def rotateRight(head, k):
listTail = head
while listTail.next is not None:
#do something
由于某些原因,这段代码不起作用
listTail = head.headval
之所以有效,是因为在我的 LinkedList 类中我定义了 __ init __ 函数
self.headval = None
如果有人可以简要解释一下或将我推荐到可以解释这一点的地方,我将不胜感激。
【问题讨论】:
标签: python data-structures singly-linked-list