题目链接:https://leetcode-cn.com/problems/remove-linked-list-elements/description/
删除链表中等于给定值 val 的所有节点。
示例:
输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5
思路:先拿到删除后的头结点 然后向下遍历 如果遇到val 指向下下个 跳过该结点即可
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode removeElements(ListNode head, int val) {
if(head==null){
return null;
}
ListNode mheadNode=head;
while(mheadNode!=null&&mheadNode.val==val){
mheadNode=mheadNode.next;
}
ListNode currentNode=mheadNode;
while(currentNode!=null){
while(currentNode.next!=null&¤tNode.next.val==val){
currentNode.next=currentNode.next.next;
}
currentNode=currentNode.next;
}
return mheadNode;
}
}