算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !
今天和大家聊的问题叫做 移除链表元素,我们先来看题面:
https://leetcode-cn.com/problems/remove-linked-list-elements/
Remove all elements from a linked list of integers that have value val.
题意
删除链表中等于给定值 val 的所有节点。
示例
输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5
解题
思路:设置哨兵节点x,以便能删除头节点。
class Solution {
public:
ListNode* removeElements(ListNode* head, int val) {
ListNode* x = new ListNode(-1);
x->next = head;
ListNode* i = x;
while(i->next)
{
if(i->next->val == val)
{
i->next = i->next->next;
}
else
{
i = i->next;
}
}
return x->next;
}
};
好了,今天的文章就到这里,如果觉得有所收获,请顺手点个在看或者转发吧,你们的支持是我最大的动力 。
上期推文: