/**
 * 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

java递归删除链表

java递归删除链表

java递归删除链表

java递归删除链表

 

 

 

 

 

 

 

 

 

 

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-10-09
  • 2022-12-23
  • 2022-12-23
  • 2022-02-06
  • 2021-12-15
  • 2021-10-25
猜你喜欢
  • 2021-08-11
  • 2022-12-23
  • 2021-04-20
  • 2021-10-05
  • 2022-12-23
  • 2021-10-25
  • 2021-04-17
相关资源
相似解决方案