如何解决在打印和追加方法中遍历链表的区别
def viewList(self):
if self.start == None:
print("List is empty!")
else:
temp = self.start
while (temp):
print(temp.data,end="-->")
temp = temp.next
def insertLast(self,data):
newNode = Node(data)
if self.start == None:
self.start = newNode
else:
temp = self.start
while (temp.next):
temp = temp.next
temp.next = newNode
在上面两种方法中,我们需要遍历到最后一个节点,以便我们可以附加或打印所需的链表但是,为什么在viewList
方法中遍历时我们使用{{1 }} 但在 while(temp):
方法中我们使用 insertLast
。两者有什么区别,请给我解释一下。
解决方法
考虑链表的结构:
Element1 --> Element2 --> ... --> ElementN --> null
打印列表时,我们要确保 current 元素不是 null
。
在列表末尾插入值时,我们检查next元素是否为null
。
在我看来,这只是编写代码的方式:
viewList() 可以重写为使用 while (temp.next)
:
def viewList(self):
if self.start == None:
print("List is empty!")
else:
temp = self.start
while (temp.next):
print(temp.data,end="-->")
temp = temp.next
print(temp.data,end="-->")
insertLast() 可以重写为使用 while (temp)
:
def insertLast(self,data):
newNode = Node(data)
if self.start == None:
self.start = newNode
else:
prev = NULL
temp = self.start
while (temp):
prev = temp
temp = temp.next
prev.next = newNode
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。