版权声明:Please make the source marked https://blog.csdn.net/qq_31807385/article/details/86704009
题目:
从具有值val的整数的链接列表中删除所有元素。例:
输入: 1-> 2-> 6-> 3-> 4-> 5-> 6,val = 6 输出: 1-> 2-> 3-> 4-> 5
Solution代码:
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode removeElements(ListNode head, int val) {
if (head == null){
return null;
}
ListNode res = removeElements(head.next, val);
if (head.val == val){
return res;
}else {
head.next = res;
return head;
}
}
}
测试代码:
package com.isea.spark.java_way;
public class ListNode {
int val;
ListNode next;
ListNode(int x){
val = x;
}
public ListNode(int[] arr){
if (arr.length == 0 || arr == null){
throw new IllegalArgumentException("The Array is null...");
}
this.val = arr[0];
ListNode cur = this;
for (int i = 1; i < arr.length; i++) {
cur.next = new ListNode(arr[i]);
cur = cur.next;
}
}
@Override
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();
}
}
class Solution{
public ListNode removeElements(ListNode head, int val) {
if (head == null){
return null;
}
ListNode res = removeElements(head.next, val);
if (head.val == val){
return res;
}else {
head.next = res;
return head;
}
}
public static void main(String[] args) {
int[] nums = {1,2,6,3,4,5,6};
ListNode head = new ListNode(nums);
System.out.println(head);
ListNode res = new Solution().removeElements(head, 6);
System.out.println(res);
/**
* 1->2->6->3->4->5->6->NULL
* 1->2->3->4->5->NULL
*/
}
}