在一个链表中插入一个元素
在链表中插入一个元素,需要考虑插入位置和插入方式。
- 插入位置:
插入位置可以分为两种情况:
- 在链表头部插入元素
- 在链表尾部插入元素
- 插入方式:
插入方式可以分为两种情况:
- 直接插入
- 排序插入
下面以Python语言为例,实现在链表头部插入元素和排序插入元素的代码:
# 定义链表节点类
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
# 在链表头部插入元素
def insert_at_head(head: ListNode, val: int) -> ListNode:
new_node = ListNode(val)
new_node.next = head
return new_node
# 排序插入元素
def insert_sorted(head: ListNode, val: int) -> ListNode:
new_node = ListNode(val)
if not head or val < head.val:
new_node.next = head
return new_node
curr = head
while curr.next and curr.next.val < val:
curr = curr.next
new_node.next = curr.next
curr.next = new_node
return head
在上面的代码中,我们定义了一个链表节点类ListNode,包含节点值val和下一个节点的指针next。
在insert_at_head函数中,我们创建一个新节点new_node,将它的next指向当前链表的头节点head,并返回新的头节点new_node。
在insert_sorted函数中,我们创建一个新节点new_node,如果链表为空或者插入值小于头节点的值,就直接将新节点插入到头部,返回新的头节点new_node。否则,遍历链表,找到插入位置,插入新节点,返回头节点head
原文地址: http://www.cveoy.top/t/topic/eCFu 著作权归作者所有。请勿转载和采集!