题目描述:
删除链表中等于给定值 val 的所有节点。
示例:
输入: 1->2->6->3->4->5->6, val = 6 输出: 1->2->3->4->5
解题思路:
第一步:
第二步:
代码实现(Java语言):
/**
* 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;
if(head.next == null)
return head.val==val?null:head;
while(head != null && head.val == val){
head = head.next;
}
if(head == null)
return null;
ListNode newHead = head;
ListNode preNode = newHead;
ListNode trace = newHead.next;
while(trace != null){
if(trace.val != val){
preNode.next = trace;
preNode = trace;
}
trace = trace.next;
preNode.next = null;
}
return newHead;
}
}