事先附上代码
#节点类
classnode(object ) :
def __init__(self,data,nNext=None ) :
self.data=data
self.next=nNext
#链表类
类通道(对象) :
def __init__(self ) :
self.head=None
self.length=0
#仅添加一个节点
def append (自,数据节点) :
#item必须是节点,如果添加的只是数字,则必须是节点
if身份(数据节点,节点) :
item=dataOrNode
else:
item=node(dataornode )
#头是空的
if not self.head:
self.head=item
self.length =1
else:
node=self.head
#找到最后一点并将其连接起来
while node.next:
node=node.next
#如果item是一个链条,怎么解决
node.next=item
self.length =1
#删除节点
ef delete (自,索引) :
ifindex0or index=self.length :
返回无
current=self.head
pre=None
temp_index=0
while current.next:
if temp_index==index:
if not pre:
self.head=current.next
else:
pre.next=current.next
self.length -=1
返回
pre=current
current=current.next
temp_index =1
#链表翻转
ef反转(自,头) :
cur=head
pre=None
while cur is not None:
#打印(头) )。
tmp=cur.next
cur.next=pre
pre=cur
#打印(pre.data ) )
cur=tmp
head=pre
问题:在链表中添加三个元素并翻转
mychain=Chain ()
mychain.append(1) )。
mychain.append(2) )。
mychain.append(3) )。
mychain.reverse(mychain.head ) )。
依次输出链表中的各值
node2=mychain.head
while node2 is not None:
打印(node2. data )。
node2=node2.next
只输出一个。
pre正确反转,前面的head重新分配了现在的pre。 (前面的head指向的地址变成了现在的pre的地址。 )我认为是正确的。 以前mychain.head的地址是123,现在的mychain.head的地址是321。 它应该可以正常输出3-2-1,但结果只有1
辅助代码:
head={'a':1,' b':2}
德夫变更(head ) :
head['k']=2
是变更(head )
是打印(头)
结果: {'a': 1,' b': 2,' k': 2}是引用传递,因此head作为参数传递给change函数,然后出现并改变其内容,这是正确的,但传递reverse函数?
主题说明
主题的来源和自己的想法
相关代码
//请在下面粘贴代码文本(请不要用图像代替代码) ) ) ) ) ) ) ) ) )。
期待的结果是什么? 实际看到的错误信息是什么?