顺序表的运用至单链表02(已修)

一.

1.顺序表是线性表的一种.

线性表的物理结构不一定是线性的

线性表的逻辑结构一定是线性的

顺序表的物理结构和逻辑结构都一定是线性的

二.

1.链表能解决顺序表

(1).扩容导致空间浪费

(2).插入数据在头部或在中部时,要整体进行挪动

(3).重新扩容导致的时间浪费

的问题

2.链表的逻辑结构连续而物理结构不连续

4.函数传输指针也可能是传值调用

四:

1.单链表中的头结点指的是第一个有效节点

2."带头"链表里的"头"指的是无效的节点

3.不带头链表和带头链表的区别是后者具有头结点(类似于火车头,内部没有任何数据)

5.用的多的还是单链表和双链表

6.单链表指的是不带头单向不循环链表

7.双向链表指的是带头双向循环链表

8.头节点一般默认为链表的第一个节点

10.快慢指针法:

建立两个指针,一个slow指针,一个fast指针

slow指针一次走一步,fast一次走两步

例:

题目:

有单链表的头结点head,请找出并返回链表的中间结点.

如有两个中间结点,则返回第二个中间结点.

typedef struct ListNode ListNode;
struct ListNode* middleNode(struct ListNode* head) {
    ListNode* slow, *fast;
    slow = fast = head;
    while(fast && fast->next)
    {
        fast = fast->next->next;
        slow = slow->next;
    }     
    return slow;
}

11.

注:ListNode* slow, *fast;

这样造出来的两个才是指针

ListNode* slow, fast;

这样造出来的只有前边的是指针

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值