【leetcode】【203】Remove Linked List Elements

一、問題描述

Remove all elements from a linked list of integers that have value val.

Example
Given: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val = 6
Return: 1 --> 2 --> 3 --> 4 --> 5

二、問題分析

因爲可能會刪除head節點,所以可以額外增加一個頭結點,便於控制。剩下的就是遍歷鏈表,因爲刪除某個節點的時候需要把之前的節點鏈到被刪的後面,因此需要兩個指針來處理。

三、Java AC代碼

public ListNode removeElements(ListNode head, int val) {
        ListNode dummy = new ListNode(0);
		dummy.next = head;
		ListNode p = dummy;
		ListNode q = head;
		while(q!=null){
			if (q.val == val) {
				p.next = q.next;
			}else {
				p = p.next;
			}
			q = q.next;
		}
		return dummy.next;
    }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章