微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在打印和追加方法中遍历链表的区别

如何解决在打印和追加方法中遍历链表的区别

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 举报,一经查实,本站将立刻删除。