python链表插入_在有序链表中插入(Python)

本文介绍了如何在Python中实现有序链表的插入操作。详细阐述了在链表中间插入新节点的过程,包括检查边缘情况,如链表为空或插入位置在链表末尾,并提供了优化建议,如避免使用setter和getter,以及简化Node构造函数。
摘要由CSDN通过智能技术生成

你需要在列表中插入你的物品。这意味着您需要:在你要插入的地方把链条拆开

创建新节点

用你的新节点在中间加入链子。在

从技术上讲,您不需要断开链,因为在previous项上设置下一个链接将清除旧链接,因此您仍然需要重新连接链:while data > other.get_data():

previous = other

other = other.get_next()

new = Node(data)

previous.set_next(new)

new.set_next(other)

我还更正了一个不同的错误,您没有调用Node.get_next()。在

接下来,您需要更多地考虑边缘情况。当您到达链的末端时,如果没有找到任何node.get_data()大于插入数据的节点,会发生什么情况?在

您需要调整您的while循环,以确保测试该情况;other将是链的最后一个元素的None:

^{pr2}$

您还可以做其他事情来改进代码。在Python中不需要使用setter和getter;将来将属性转换为@propertys也没有成本,所以只需在这里使用属性。在

您还可以使您的Node()接受构造函数中的下一个元素,这样可以更容易地插入元素。在

您可以使用str.join()在序列的元素之间插入固定字符串。将所有的data属性放入一个Pythonlist并加入该列表。在

创建初始元素时(当self.head是None时),不需要将self.head设置为下一个节点;这是默认值:class Node:

def

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值