移除链表元素(LeetCode203题)

一、题目描述:

删除链表中等于给定值 val 的所有节点。

示例:

输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5

二、解题思路

这是一道简单题, 没有什么最优解

方法一:循环判断每个节点的值是否等于给定值val。

方法二:递归求解,链表本质是递归的数据结构,化解为子问题求解。

三、java代码

只提供方法二的递归版本。

class Solution {
    public ListNode removeElements(ListNode head, int val) {
         if(head == null){
             return head;
         }
         head.next = removeElements(head.next,val);
         return head.val == val ? head.next : head;
    }
}

 

你可能感兴趣的:(LeetCode刷题)