jjzjj

203.移除链表元素&707.设计链表& 206.反转链表

203.移除链表元素:给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val==val 的节点,并返回 新的头节点 。707.设计链表 :你可以选择使用单链表或者双链表,设计并实现自己的链表。单链表中的节点应该具备两个属性:val和next。val是当前节点的值,next是指向下一个节点的指针/引用。如果是双向链表,则还需要属性 prev 以指示链表中的上一个节点。假设链表中的所有节点下标从0开始。实现MyLinkedList类:MyLinkedList()初始化MyLinkedList对象。intget(intindex)获取链表中下标为index的节

【代码随想录刷题记录】 203.移除链表元素 、 707.设计链表 、206.反转链表

203移除链表元素题目给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.val==val的节点,并返回新的头节点。题目链接:https://leetcode.cn/problems/remove-linked-list-elements/代码classSolution{public:ListNode*removeElements(ListNode*head,intval){ListNode*p;//p用于遍历,q用于释放p=head;while(p!=NULL&&p->next!=NULL){ListNode*q;q=p->next;if(q->val==val){

代码随想录算法训练营第三天| 203.移除链表元素,707.设计链表,206.反转链表。

203.移除链表元素题目:给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.val==val的节点,并返回新的头节点。题解:classSolution{public:ListNode*removeElements(ListNode*head,intval){ListNode*dummyHead=newListNode();//设置虚拟头结点dummyHead->next=head;ListNode*cur=dummyHead;while(cur->next!=NULL){if(cur->next->val==val){//判断cur->next不为空才能使用这条Li

day 3 | 203.移除链表元素、707.设计链表、206.反转链表

目录:学习链接链表基础:https://programmercarl.com/链表理论基础.html题目链接:https://leetcode.cn/problems/remove-linked-list-elements/解题及思路学习203. 移除链表元素给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val==val 的节点,并返回 新的头节点 。输入:head=[1,2,6,3,4,5,6],val=6输出:[1,2,3,4,5]自己思路:从头节点遍历整个链表,然后依次查看其中数据是否等于val,如果等于,则进行删除操作。随想录思路:对于头节点是

day3-链表理论基础 203.移除链表元素 707.设计链表 206.反转链表

链表理论链表类型单链表双链表:每个节点有两个指针域,一个指向下一个节点,一个指向上一个节点既可以查询前一个节点,又能查询后一个节点循环列表:链表首尾相连链表的存储方式在内存上不是连续分布的,散乱分布在内存中的某地址上链表的定义//单链表structListNode{intval;//节点上存储的元素ListNode*next;//指向下一个节点的指针ListNode(intx):val(x),next(NULL){}//节点的构造函数};链表的操作删除节点:next指针直接指向下下个节点,且在内存中删除要移除的节点添加节点:203.移除链表元素要点:虚拟头节点,为了避免要删除的节点是头结点,虚

刷题第三天:206. 反转链表​203. 移除链表元素​707设计链表

链表    1.链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。单链表双链表有两个指针域,可以向前查询耶可以向后查询  循环链表:首尾相连,用来解决约瑟夫环问题 链表的存储方式:数组在内存中是连续存储链表在内存中不是连续分布2.链表的定义(手写)//单链表structListNode{intval;ListNode*next;ListNode(intx):val(x),next(nullptr){}};3.链表的访问单链表中要访问链表的结点,采用辅助结点,指向链表头结点,从链

链表学习|L203.移除链表元素、L707.设计链表、L206.反转链表

链表相关知识:单链表:通过指针串联在一起的线性结构,由两部分组成,一部分数据域,一部分指针域,通过结构体来对其进行创建,其包含一个数值,一个指针(指向下一个链表),还有一个构造函数双链表:包含两个指针,一个指向前面一个指向后面存储结构:链表的内存是不连续的,而是散乱分布,每次定义链表的时候都需要new一块内存链表定义:StructListNode{intval;ListNode*next;ListNode(intx):val(x),next(NULL){}}链表的基础操作:删除,增加为了方便链表的操作,通常设置头结点,头结点的数值域为空(也可以存储线性表长度等附加信息)但指针指向头链表的第一个

代码随想录算法训练营第三天|链表:203.移除链表元素 707.设计链表 206.反转链表

看了卡哥的链表基础之前都是在数据结构上学链表,实际操作忘了,看到了链表的构造函数,很新奇。是我孤陋寡闻了~structListNode{intval;//节点上存储的元素ListNode*next;//指向下一个节点的指针ListNode(intx):val(x),next(NULL){}//节点的构造函数,这玩意儿居然没分号,太久没编码了,都不记得了,将NULL换成nullptr试试};定义了构造函数的能够直接赋值ListNode*head=newListNode(5);而不定义构造函数的,系统会自动生成一个默认构造函数使用默认构造函数初始化节点:ListNode*head=newListN

代码随想录算法训练营第三天|链表:203.移除链表元素 707.设计链表 206.反转链表

看了卡哥的链表基础之前都是在数据结构上学链表,实际操作忘了,看到了链表的构造函数,很新奇。是我孤陋寡闻了~structListNode{intval;//节点上存储的元素ListNode*next;//指向下一个节点的指针ListNode(intx):val(x),next(NULL){}//节点的构造函数,这玩意儿居然没分号,太久没编码了,都不记得了,将NULL换成nullptr试试};定义了构造函数的能够直接赋值ListNode*head=newListNode(5);而不定义构造函数的,系统会自动生成一个默认构造函数使用默认构造函数初始化节点:ListNode*head=newListN

代码随想录day3 59 螺旋矩阵 203移除元素 707 设计链表 206 反转链表

代码随想录第九期第三天打卡记录链表基础:structListNode{intval;//结点上存储元素ListNode*next;//指向下一个节点的指针ListNode(intx):val(x),next(nullptr){}//结点的构造函数};注意:不写构造函数的话,C++会自动的生成这样的一个构造函数,单数不会生成任何的成员变量。插入/删除(时间复杂度)查询(时间复杂度)使用场景数组O(n)O(n)O(n)O(1)O(1)O(1)数据量固定,频繁查询,较少增删链表O(1)O(1)O(1)O(n)O(n)O(n)数据量不固定,频繁增删,较少查询59.螺旋矩阵:link以下部分为c++相关