【python链表】


前言

链表是python中比较重要的知识点,下面介绍下什么是链表与链表的基础使用方法


一、链表是什么?

在力扣中链表里节点的定义是这样的,包含两个内容一个是当前节点的值(默认为0),另一个是当前节点指向的下一个节点(默认是空

 class ListNode:
     def __init__(self, val=0, next=None):
         self.val = val
         self.next = next

可以创建两个节点a和b,让节点a指向节点b,可以得到一个简单的链表

class ListNode:
     def __init__(self, val=0, next=None):
         self.val = val
         self.next = next
a = ListNode(2)     #创建个节点a
b = ListNode(3)     #创建个节点b
a.next = b          #让节点a指向节点b
print(a.val)        #输出节点a的值
print(b.val)        #输出节点b的值
print(a.next.val)   #输出节点a的下一个节点的值

在这里插入图片描述

输出结果

2
3
3

二、链表的常用操作

1.反转链表

在这里插入图片描述

lass Solution:
    def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]:
        left_head = head	#让left_head 等于头节点
        new_head = None		#创建一个新链表	
        while left_head:	
            t = left_head.next			#暂存后续节点的头节点
            left_head.next = new_head	#把当前头结点加入到新链表的头部以实现反转
            new_head = left_head		#更新一下新链表的头部
            left_head = t				#更新一下链表的头部
        return new_head

2.依次交替合并链表

在这里插入图片描述

ur = head  #cur new_head 分别指向链表左右两个链表的头部
        while new_head:
            t = new_head.next			#暂存右边后续节点的头节点
            new_head.next = cur.next	#右边头节点指向左边头节点的下一个节点
            cur.next = new_head			#调整左边头节点的下一个节点,让new_head插入其中
            cur = new_head.next			#更新cur为左边链表的下一个节点
            new_head = t				#更新new_head为需要插入的新节点
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值