203.移除链表元素
给你一个链表的头节点 head
和一个整数 val
,请你删除链表中所有满足 Node.val == val
的节点,并返回 新的头节点 。
示例 1:
输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5]
思路:
1.先判断head节点是否为空且是否head的属性值是否等于val-->若等于val值,则将head.next赋给head(删除head值)
2.创建一个节点,将判断后的头节点(即第一步骤后的head.next)赋给node
3.判断非头结点是否为空与下一个值是否为空
->如果node.next.val == val值,则将node.next.next的值赋给node.next
->如果node.next.val != val值,则将node.next的值赋给node
第三步骤已将非头结点与val相等的元素移除
最后返回head即可
class Solution {public ListNode removeElements(ListNode head, int val) {while(head!=null&&head.val==val){head = head.next;}ListNode node = head;while(node != null && node.next != null){if(node.next.val == val)node.next = node.next.next;elsenode = node.next;}return head;}
}