问题分析:
声明当前指针和上一个指针即可。
问题求解:
public class Solution { public ListNode removeElements(ListNode head, int val) {
ListNode preListNode = new ListNode(0);// 上一个指针
ListNode nowListNode = head;// 当前指针
ListNode returnListNode = null;// 需要返回的链表
preListNode.next = nowListNode;
while (nowListNode != null) {
if (nowListNode.val == val) {
preListNode.next = nowListNode.next;
nowListNode = nowListNode.next;
} else {
preListNode = nowListNode;
nowListNode = nowListNode.next;
if (returnListNode == null) {
returnListNode = preListNode;
}
}
}
return returnListNode;
}
} class ListNode {
int val;
ListNode next; ListNode(int x) {
val = x;
}
}