题目分析
- 把它想像成构建一个全新的链表,不等于val的,即是属于全新链表的结点
- 构造虚拟头节点
Solution
public ListNode removeElements(ListNode head, int val) {
if (head == null) return null;
// 新链表的头结点
ListNode newHead = new ListNode(0);
// 新链表的尾结点
ListNode newTail = newHead;
while (head != null) {
if (head.val != val) {
newTail.next = head;
newTail = head;
}
head = head.next;
}
newTail.next = null;
return newHead.next;
}