0
点赞
收藏
分享

微信扫一扫

leetcode链表

曾宝月 2022-02-17 阅读 59

时间复杂度:算法的时间开销与问题规模之间的关系
单链表
特点:与数组与vector对象不同,其属于非顺序存储,使用next访问下一个元素,数据存储时不仅要存储数据,还需要存储下一个节点的地址,最后一个节点指向空值
1.插入元素
①带头节点,插入元素不需要单独定义表头,但是在传递参数时需要包含头节点
②不带头节点,插入元素时需要单独定义表头,传递参数时不需要包含头节点
2.删除元素
利用next来进行,通常需要获知第一个节点
3.创建链表

//单链表节点定义c++
struct ListNode{
    int val;
    ListNode *next;
    //ListNode(int x):val(x),next(nullpter){}
};

//分配新节点 上面的ListNode是可以更改的,属于自定义变量名
ListNode *head = nullptr;//定义一个初始为空的链表
head = new ListNode;//分配新节点
head->value = 12.5;
head->next = nullptr;//表示链表最后一个节点

双链表
特点:每个数据结点都有两个指针,分别指向直接前驱与后继

//双链表节点定义c++
struct ListNode{
    int val;
    ListNode *next;
    ListNode *last;
    //ListNode(int x):val(x),next(nullpter){}
};

循环链表:单链与双链表

链表的缺点:必须从第一个节点开始遍历所有数据

参考资料
c++链表(详解版)
C++链表及其创建

举报

相关推荐

0 条评论