代码: /*单链表(含头结点)*/ #include<stdio.h> #include<stdlib.h> typedef int ElemType; typedef struct LNode{ ElemType data; //数据域 struct LNode *next; // 指针域 }LN ...
分类:
其他好文 时间:
2020-07-22 11:28:44
阅读次数:
101
1、链表是通过“指针”将一组零散的内存块串联起来的数据结构2、链表可以分为单链表、双向链表和单/双向循环链表2.1、删除链表中等于某个值的节点,单链表和双向链表的时间复杂度一样2.2、由于双向列表可以直接找到前驱结点,所以删除指定的节点,双向链表比单向链表高;同时在链表的某个指定结点前面添加一个结点 ...
分类:
编程语言 时间:
2020-07-22 02:11:20
阅读次数:
69
#include<stdio.h> #include<stdlib.h> #include<malloc.h> typedef struct LNode{ int data; struct LNode* next; //next是一个指向结构体类型的指针, LNode* 是一个指针数据类型类似int ...
分类:
编程语言 时间:
2020-07-19 23:54:49
阅读次数:
96
#include<stdio.h> #include<stdlib.h> #include<malloc.h> typedef struct LNode{ int data; struct LNode* next; }LNode,*LinkList; LinkList List_TailInsert ...
分类:
编程语言 时间:
2020-07-19 23:53:50
阅读次数:
108
带头结点的双循环链表 L 为空表的条件是:L->next==L && L->prior==L 在单链表中设置头结点的作用是主要是使插入和删除等操作统一,在第一个元素之前插入元素和删除第一个结点不必另作判断。另外,不论链表是否为空,链表指针不变。在单链表 p 结点之后插入s 结点的操作是 s->nex ...
分类:
其他好文 时间:
2020-07-19 23:13:51
阅读次数:
56
反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 解题思路:双指针迭代。(如图) 实现代码: //双指针迭代法 public ListNode reverseList(ListNode head) { ListNode prev ...
分类:
其他好文 时间:
2020-07-19 00:40:33
阅读次数:
70
代码如下: /***************************************** * 入队列操作 * 首先,创建一个单链表的结点 * 将这个结点挂在现在队伍的队尾后面 * 再将队尾指向这个节点 * ***************************************/ #i ...
分类:
编程语言 时间:
2020-07-18 22:43:20
阅读次数:
79
一位C++小白的力扣刷题_成长记录_welcome to visit ^_^ 链表_第3题:相交链表 题目描述: 编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表: 在节点 c1 开始相交。 举例 示例 1: 输入:intersectVal = 8, listA = [4,1,8,4, ...
分类:
编程语言 时间:
2020-07-17 01:23:20
阅读次数:
142
1、LeetCode 160 相交链表 题目链接:https://leetcode-cn.com/problems/intersection-of-two-linked-lists/ 编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表: 在节点c1开始相交。 示例 1: 输入:inter ...
分类:
其他好文 时间:
2020-07-14 18:13:25
阅读次数:
53
双向链表类: 单链表只有一个方向的链接,只能做一个方向的扫描和逐步操作。 两端插入和删除操作都能高效完成,就必须修改结点的基本设计,加入另一个方向的链接。 结点增加了一个链接域,增加的空间开销与结点数成正比。 p.prev.next = p.next p.next.prev = p.prev 双向链 ...
分类:
编程语言 时间:
2020-07-12 22:33:55
阅读次数:
75