静态链表 1. 用结构体数组的方式声明,所占的存储空间是固定的,例如: struct StructName{ int a; long b; char c[size]; struct StructName *next; //静态链表区别于数组的地方,包含了一个指向同类型结构体的指针 }List[LEN ...
分类:
编程语言 时间:
2020-12-23 12:17:32
阅读次数:
0
1.代码实现 /** * @description 线性表的链式表示和实现 * @author wcc */ public class MyLinkedList<T> { private Node<T> head; private int length; public MyLinkedList(){ ...
分类:
其他好文 时间:
2020-12-23 12:12:50
阅读次数:
0
这里先讲个杜撰的故事: 有一名超级无敌的杀手,暂且取名叫蛮王(类比下文的linkedList)吧,为了生活已经退隐峡谷,但是时常想起自己的那把绝世武器--九头鞭(linkedList要操作的链表),这把屠龙刀,藏于峡谷的某处,但是藏匿的地址(类比head头指针),是存在于蛮王的兜里的。每当需要的时候 ...
分类:
其他好文 时间:
2020-12-23 11:54:24
阅读次数:
0
请判断一个链表是否为回文链表。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶: 你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题? 来源:力扣(LeetCode) 链接:https://leetcode-cn.com ...
分类:
其他好文 时间:
2020-12-22 12:57:18
阅读次数:
0
单链表实现栈结构->使用环状双链表重构,增加了对链表操作的灵活程度。我相信只要有一点能够优化就值得去做。 “栈”的单链表实现 1 typedef int stack_element; 2 typedef struct stack_node { 3 stack_element element; 4 s ...
分类:
其他好文 时间:
2020-12-21 11:57:13
阅读次数:
0
重磅干货,第一时间送达题目两个链表的第一个公共结点题目要求输入两个链表,找出它们的第一个公共结点。解题思路思路一:两条相交的链表呈Y型。可以从两条链表尾部同时出发,最后一个相同的结点就是链表的第一个相同的结点。可以利用栈来实现。时间复杂度有O(m+n),空间复杂度为O(m+n)思路二:思路一其实利用栈主要解决就是同时到达第一个结点的问题,需要有额外的空间。那么从链表头出发如何同时到达第一个相同的结
分类:
编程语言 时间:
2020-12-21 11:15:47
阅读次数:
0
重磅干货,第一时间送达题目复杂链表的复制题目要求输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)解题思路把复制的结点链接在原始链表的每一对应结点后面把复制的结点的random指针指向被复制结点的random指针的下一个结点拆分成两个链
分类:
编程语言 时间:
2020-12-21 11:15:13
阅读次数:
0
重磅干货,第一时间送达题目从尾到头打印链表题目要求输入一个链表的头结点,从尾到头反过来打印出每个结点的值解题思路要想从尾到头遍历链表,首先需要做的是倒转链表,再进行遍历。该题思路:创建一个空列表,用来存储链表中的值,最后将列表逆序输出下面我们来举个例子:使用栈的情况:题目要求,从尾到头遍历单链表。也就是第一个遍历到的节点要最后一个输出,最后一个遍历到的节点第一个输出。这就是典型的“后进先出”,由此
分类:
编程语言 时间:
2020-12-21 10:58:09
阅读次数:
0
重磅干货,第一时间送达题目链表中倒数第k个节点题目要求输入一个链表的头结点,从尾到头反过来打印出每个结点的值解题思路为了得到倒数第k个结点,很自然的想法是先走到链表的尾端,再从尾端回溯k步。当时,从链表结点的定义可以看出本题中的链表是单向链表,单向链表的结点只有从前往后的指针而没有从后往前的指针,因此这种思路行不通,它只适用于双向链表。思路:看到本题我们很自然的一个想法是从尾结点往前倒退k步,但是
分类:
编程语言 时间:
2020-12-21 10:57:50
阅读次数:
0
重磅干货,第一时间送达题目链表中环的入口结点题目要求给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。解题思路先看一张图,首先A是起点,C是环的入口点,B是指针的相遇点既然要相遇,那必然是两个指针的相遇。那他的快慢程度如何确定?我们假设快指针fast一次走2步,慢指针slow一次走1步,每次拉开的差距就是1步,由于我们知道这个链表是个环,那么这样快指针fast一定可以赶上s
分类:
编程语言 时间:
2020-12-21 10:57:28
阅读次数:
0