一、142.环形链表I
142. 环形链表 II - 力扣(LeetCode)
用set统计一下 如果再次出现那么就环的第一个return返回就行
public ListNode detectCycle(ListNode head) {
Set<ListNode> set = new HashSet<>();
ListNode cur = head;
while(cur != null){
if(set.contains(cur)){
return cur;
}else{
set.add(cur);
}
cur = cur.next;
}
return cur;
}
买一送一,环形1也给你秒了,一样的逻辑,返回值改一下
public boolean hasCycle(ListNode head) {
Set<ListNode> set = new HashSet<>();
ListNode cur = head;
while(cur != null){
if(set.contains(cur)){
return true;
}else{
set.add(cur);
}
cur = cur.next;
}
return false;
}
/**
* 递归乘法
*
* @param a
* @param b
* @return
*/
public int multiply(int a, int b) {
if (a > b) {
return f(b, a);
}
return f(a, b);
}
public int f(int a, int b) {
if (a == 1) return b;
int sum = b;
sum += multiply(--a, b);
return sum;
}