做服装行业网站怎么每天更新内容,服务器网站崩溃,重庆网站建设的意义,网站建设业务终止合作范本文章目录
前言
一、移除链表元素#xff08;LeetCode--203#xff09; 前言
跟随代码随想录#xff0c;学习链表相关的算法题目#xff0c;记录学习过程中的tips。 一、移除链表元素#xff08;LeetCode--203#xff09;
【1】题目描述#xff1a; 【2】解决思想LeetCode--203 前言
跟随代码随想录学习链表相关的算法题目记录学习过程中的tips。 一、移除链表元素LeetCode--203
【1】题目描述 【2】解决思想在当前节点判定下一个节点的val是否是目标值若是则修改当前节点的next指针为下一个节点的next地址。为了使操作更加一致创建一个头节点辅助操作。
【3】C代码
/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* removeElements(ListNode* head, int val) {struct ListNode* headNode new ListNode(0, head);struct ListNode* pNode headNode;while (pNode-next) {if (pNode-next-val val) {auto tmp pNode-next;pNode-next pNode-next-next;delete tmp;} else {pNode pNode-next;}}auto tmp headNode-next;delete headNode;return tmp;}
};
【4】时间复杂度O(N)只遍历了一遍链表。
【5】空间复杂度O(1)只是开辟了一个头节点而已。