4.移除链表元素
题目链接:
题目解读:题目中给了一个链表的头节点,也就是给了一个链表,链表中的元素是整形数据val,但是不知道是否是空链表,同时题目中给了一个数值val,要求将链表中所有存储该数值的节点全部移除链表,同时返回新链表的头节点。
解题思路:首先我们可以通过定义一个指针later,并将其初始化为head,来遍历链表,需要在指针移动的过程中需要定义临时指针tmp,将其初始化为head,来指向其前驱节点,在遍历的过程中,这样我们可以让该临时节点去指向其val等于给定val的节点的下一个节点,依次直到later==NULL。
此外我们还要考虑要返回的节点,我们还要定义一个指针front,最初将其指向head,如果front.val==val的话,front=later=front->next,就是将front和later再次初始化为头节点,当然如果头节点head.val!=val的话,那直接返回front即可.
接下来通过图解让我们详细了解一下其中的过程:
head.val!=val:
head.val==val:
代码展示:
今天的每日一题分享到此结束,希望你们能够有所收获,可以在评论区留下你的方法和意见,我们可以共同讨论,共同进步,加油少年,相信我们一定能够有所成就,拜拜,我们下期见。