203.移除链表元素
题目:
203. 移除链表元素 - 力扣(LeetCode)
代码:
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val = val; }* ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode removeElements(ListNode head, int val) {while(head != null && head.val == val){ // 因为需要使用val属性,所以节点不能为空head = head.next;}// 通过上面的代码,我们已经确定了新的头节点// 下面我们来确定链表中的新节点ListNode cur = head; // 将head节点赋值给cur,让其去遍历,删除节点值为val的节点while(cur != null && cur.next != null){ // 因为要用到cur.next所以cur不能为空,又因为要用到cur.next.val所以cur.next也不能为空if(cur.next.val == val){ // 若下一个节点为要删除的节点,断开连接,连接下下个即可cur.next = cur.next.next;}else{ // 否则,cur向后挪动一个位置cur = cur.next;}}return head;}
}