给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。
ListNode* removeElements(ListNode* head, int val) {
//新建一个链表
ListNode dummy, *tail = &dummy;
auto p = head;
//开始遍历
while (p) {
//保存下一次循环的节点
ListNode* next = p->next;
//在新链表的尾部添加结点
if (p->val != val) {
tail->next = p;
tail = p;
}
//更新下一次节点
p = next;
}
//将尾节点设置为空
tail->next = nullptr;
//返回新链表
return dummy.next;
}
这是一个关于链表操作的算法实现,主要任务是删除链表中所有值等于给定整数的节点。通过创建一个新的链表并遍历原链表来完成这个过程,保留不匹配给定值的节点。
1196

被折叠的 条评论
为什么被折叠?



