递归
递归,本质上是将原来的问题转化为同一更小的问题,比如数组求和
public static int sum(int[] arr){
return sum(arr, 0);
}
// 计算arr[l...n)这个区间内所有数字的和
private static int sum(int[] arr, int l){
if(l == arr.length)
return 0;
return arr[l] + sum(arr, l + 1);
}
链表中的递归
public ListNode removeElements(ListNode head, int val) {
if(head == null)
return head;//head为空,返回null
head.next = removeElements(head.next, val);
/*
复用removeElements方法,得到头结点后的链表
*/
return head.val == val ? head.next : head;//判断头结点值是否为指定值,如果是则返回删除后的下一链表
}