给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回新的头节点 。
示例:
输入:head = [1,2,6,3,4,5,6], val = 6
输出:[1,2,3,4,5]
输入:head = [], val = 1
输出:[]
输入:head = [7,7,7,7], val = 7
输出:[]
提示:
- 列表中的节点数目在范围 [0, 104] 内
- 1 <= Node.val <= 50
- 0 <= val <= 50
思路:定义一个指向节点指针的指针。当前节点的值等于val,当前节点的指针变为下一个节点;否则,遍历下一个节点
ListNode* removeElements(ListNode* head, int val) {
ListNode** list=&head;
while(*list){
if((*list)->val==val){
*list=(*list)->next;
}else{
list=&((*list)->next);
}
}
return head;
}