/**
* Definition for singly-linked list.
* class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
class solution{
public ListNode remove(ListNode head,int val){
//链表递归删除输入存在的元素val
if(head == null) //头结点为空就不用递归了
return null;
head.next =remove(head.next,val) //不为空则下一个节点为此函数的递归,再次检测
return head.val == val? head.next : head;
//检测完了之后逐项返回 如果是相等就返回下一个值(跳过了==val),否则返回head
}
public static void public static void main(String[] args) {
int[] nums = {1,2,3,4,5,6};
ListNode head = new ListNode(nums);
System.out.println(head);
ListNode res=(new solution()).remove(head,6);
System.out.println(res);
}
}
下面为理解过程,可以不用看 输入链表为6->7->8->null