算法通关村第一关-青铜挑战-链表

链表

  1. 概述:数组元素随机存储在内存中,通过指针维系数据之间“一对一”的逻辑关系,这样的存储结构就是链表。链表要求环环相扣,核心是一个节点只能有一个后继,但一个节点可以同时被多个节点指向(也就是一个节点可以有多个前驱)。

  2. 头节点:对于单链表来说,如果知道了第一个节点就可以通过遍历访问整个链表,所以也叫做头节点。

  3. 尾节点:尾节点的指针指向null。

​ 所以只要找到头节点,就可以连续的访问整个链表,如下图:
在这里插入图片描述

  • 遍历单链表:一定是从头开始访问,注意:不能忘记标记表头的指针。
  • 链表的插入
  1. 表头插入:将创建的新节点指针指向原来的表头。
  2. 表中间插入:首先要遍历找到插入的位置,新节点的指针先指向插入位置后面的节点,然后插入前的的指针指向新节点。注意:插入完之后原来两个节点之间就断开了。
  3. 表尾插入:只需要原来最后一个结点的指针指向要插入的节点就可以。

链表的删除

  1. 表头删除:如图: 在这里插入图片描述
    原来的节点到不了,会被JVM回收。
  2. 表尾删除:先遍历到前一个节点,使其指向null,这样最后一个节点到不了,也会被JVM回收。
  3. 表中间删除:先遍历到要删除的元素,使前一个元素的指针跳过删除的元素指向后面一个就可以了。
双向链表

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值