18.移除链表元素
作者:互联网
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
1 /** 2 * Definition for singly-linked list. 3 * public class ListNode { 4 * int val; 5 * ListNode next; 6 * ListNode() {} 7 * ListNode(int val) { this.val = val; } 8 * ListNode(int val, ListNode next) { this.val = val; this.next = next; } 9 * } 10 */ 11 class Solution { 12 public ListNode removeElements(ListNode head, int val) { 13 // 找到第一个非val值的头节点 14 while(head != null && head.val == val){ 15 head = head.next; 16 } 17 // 设置prev节点逐一测试所有的后续节点是否与val值相同 18 ListNode prev = head; 19 if (prev != null) { 20 while(prev.next != null) { 21 if (prev.next.val == val){ 22 prev.next = prev.next.next; 23 } 24 else { 25 prev = prev.next; 26 } 27 } 28 } 29 return head; 30 } 31 }
标签:head,ListNode,val,18,next,链表,移除,prev,节点 来源: https://www.cnblogs.com/fulaien/p/16389126.html