1. 程式人生 > 其它 >力扣 203. 移除連結串列元素 難度:簡單

力扣 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

來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/remove-linked-list-elements


解題思路

本道題有多種解法,我這裡採用的是遍歷原連結串列,然後再新開闢一個連結串列,如果原連結串列當前的數不刪除,則加入到新連結串列中,需要注意的是要建立一個頭結點來指向新連結串列的頭結點。


程式碼

 1 class Solution {
 2     public ListNode removeElements(ListNode head, int val) {
 3         ListNode newHead = null;
 4         ListNode top = new ListNode();
 5         
 6         int i=0;
 7
8 while(head != null){ 9 if(head.val != val){ 10 11 if(i==0){//第一次 12 newHead = new ListNode(); 13 newHead.val = head.val; 14 top.next = newHead; 15 i++; 16 }else
{ 17 18 ListNode node = new ListNode(head.val); 19 newHead.next = node; 20 newHead = node; 21 22 } 23 } 24 head = head.next; 25 } 26 return top.next; 27 } 28 }

本文來自部落格園,作者:宗神一,轉載請註明原文連結:https://www.cnblogs.com/zhangmuchen/p/15711940.html