[Liボタン] 203. リンクリスト要素の削除 <リンクリストポインタ>

【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;
    }
}

おすすめ

転載: blog.csdn.net/qq_44033208/article/details/132493473