【Lituo】203. リンクリスト要素の削除
リンク リストのヘッド ノード head と整数 val が与えられた場合、リンク リスト内の Node.val == val を満たすすべてのノードを削除し、新しいヘッド ノードを返してください。
例 1:
入力: head = [1,2,6,3,4,5,6]、val = 6
出力: [1,2,3,4,5]
例 2:
入力: head = []、val = 1
出力: []
例 3:
入力: head = [7,7,7,7]、val = 7
出力: []
ヒント:
リスト内のノード数の範囲は [0, 104]
1 <= Node.val <= 50
0 <= val <= 50
答え
class ListNode {
// 结点的值
int val;
// 下一个结点
ListNode next;
// 节点的构造函数(无参)
public ListNode() {
}
// 节点的构造函数(有一个参数)
public ListNode(int val) {
this.val = val;
}
// 节点的构造函数(有两个参数)
public ListNode(int val, ListNode next) {
this.val = val;
this.next = next;
}
}
class Solution {
public ListNode removeElements(ListNode head, int val) {
if (head == null) {
return head;
}
// 因为删除可能涉及到头节点,所以设置dummyNode,统一操作
ListNode dummyNode = new ListNode(-1);
dummyNode.next = head;
ListNode cur = dummyNode;
while (cur.next != null) {
if (cur.next.val == val) {
cur.next = cur.next.next;
}
else {
cur = cur.next;
}
}
return dummyNode.next;
}
}