203. 移除链表元素

2020-08-20  本文已影响0人  bangbang2
image.png

为什么要引入dummy头节点?
如果删除head头节点,那么就无法返回head,之前我的返回是head

/**
 * 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&&head.val==val) return null; 
        ListNode dummy=new ListNode(0);
        dummy.next=head;
        ListNode start=head;
        ListNode end=dummy;
        while(start!=null){
            if(start.val==val){
                end.next=start.next;
            }else  end=end.next;//如果不相等,end向前移动
            start=start.next;
        }
       
        return dummy.next;
    }
}
上一篇下一篇

猜你喜欢

热点阅读