链表list
单链表,循环链表等总结
⁰至若橘林37
代码界的一只小橘子。
展开
-
单链表--合并两个有序链表(C++)
非递归实现(leetcode 21)思路及图解实现代码(注释详解)#include <iostream>#include <vector>using namespace std;struct ListNode { int val; ListNode *next; explicit ListNode(int x) : val(x), next(nullptr) {}};ListNode* createLinkList(const vect原创 2020-08-07 16:53:30 · 841 阅读 · 0 评论 -
单链表--有环判断|环入口|环长度(C++)
判断单链表有无环(leetcode 141)一、快慢指针(1)快指针:每次走两个节点(2)慢指针:每次走一个节点(3)若两个指针相遇(相等),则一定有环。(4)循环结束条件: fast指针遇空指针(未相遇)(5)时间复杂度:o(n)(6)空间复杂度:o(1)struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} };class Solution原创 2020-08-07 14:49:11 · 336 阅读 · 0 评论 -
单链表--按位置插入|根据数据查找位置|按位置删除(C/C++)
实现代码如下:#include <iostream>#include <malloc.h>using namespace std;//数据以及结点的类型typedef int data_t;typedef struct node{ data_t data; struct node *next;}linknode_t;// 初始化链表头linknode_t* LinkList_Create(){ //auto head = (link原创 2020-08-06 19:14:53 · 1035 阅读 · 0 评论 -
单链表--逆置(C/C++)
头插法反转链表(非递归实现)在原有链表的基础上,依次将链表头部节点摘下,然后利用头插至新的表头(建议:画图更容易理解过程)实现代码如下:#include <iostream>#include <malloc.h>using namespace std;//节点的类型typedef struct node{ int data; //数据段:存储数据 struct node *next; //地址段:存储下一个节点的地址}linknod原创 2020-08-06 16:20:56 · 679 阅读 · 0 评论 -
内核链表list的学习笔记(C)
【说明】学习Linux内核list链表,利用list.h中函数实现某些功能;一、将某文件夹下的所有文件部分相关信息插入内核liststruct list_head* get_file_list(const char *dir,struct list_head *head){ struct dirent **namelist; // struct dirent * namelist[]...原创 2019-09-06 11:31:32 · 403 阅读 · 0 评论