新野做网站,环球军事头条,如何制作大量网页,新乡电子商务网站建设前言#xff1a;接近20day的时间#xff0c;终于来到了链表。
题型#xff1a;指针、链表
链接#xff1a;203. 移除链表元素 - 力扣#xff08;LeetCode#xff09;
来源#xff1a;LeetCode
题目描述
给你一个链表的头节点 head 和一个整数 val #xff0c;请你…前言接近20day的时间终于来到了链表。
题型指针、链表
链接203. 移除链表元素 - 力扣LeetCode
来源LeetCode
题目描述
给你一个链表的头节点 head 和一个整数 val 请你删除链表中所有满足 Node.val val 的节点并返回 新的头节点 。
题目样例
示例 1 输入head [1,2,6,3,4,5,6], val 6
输出[1,2,3,4,5]示例 2
输入head [], val 1
输出[]示例 3
输入head [7,7,7,7], val 7
输出[]
提示
列表中的节点数目在范围 [0, 104] 内1 Node.val 500 val 50
题目思路
本题主要目的是熟悉下【链表】这个数据结构比如申请结点创建指针等
解题思路就是单链表的元素移除但考虑 “头结点-val val” 移除头结点这个操作可以申请一个结点来作为【头结点的头结点】
C代码
C链表涉及到删除操作需要把结点给delete掉
/*** 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) {ListNode* Vhead new ListNode(0);Vhead -next head;ListNode* pVhead;while(p-next ! NULL){if(p - next - val val){ListNode* temp p - next;p - nextp - next - next;delete temp;}else {pp - next;}}head Vhead - next;delete Vhead;return head;}
};
结算页面