class ListNode{ int val ; ListNode next; public ListNode(int x) { val = x; } public ListNode(int[] arr) { if(arr == null || arr.length == 0) { throw new IllegalArgumentException("ARR CAN NOT BE EMPTY"); } val = arr[0]; //這個this是指實現這個內部類的對象 ListNode cur = this; for(int i = 1 ; i < arr.length ; i ++) { cur.next = new ListNode(arr[i]); cur = cur.next; } } public String toString() { StringBuilder res = new StringBuilder(); ListNode cur = this; while(cur != null) { res.append(cur.val + "->"); cur = cur.next; } res.append("NULL"); return res.toString(); } } public class Main { public static void main(String[] args) { int[] nums = {1,2,4,3,6,4,2}; ListNode head = new ListNode(nums); System.out.println(head); ListNode node = removeElement(head, 2); System.out.println(node); } //不設頭節點 public static ListNode removeElement(ListNode head, int val) { //刪除開始部分的節點 while(head != null && head.val == val) { head = head.next; } if(head == null) { return head; } //刪除中間部分的節點 ListNode prev = head; while(prev.next != null) { if(prev.next.val == val) { prev.next = prev.next.next; }else { prev = prev.next; } } return head; } }