给定一个整数数组,判断是否存在重复元素。

如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。

示例 1:

输入: [1,2,3,1]
输出: true

示例 2:

输入: [1,2,3,4]
输出: false

示例 3:

输入: [1,1,1,3,3,4,3,2,4,2]
输出: true

上期的问题是:157,反转链表

1public ListNode reverseList(ListNode head) {
2    if (head == null || head.next == null)
3        return head;
4    ListNode tempList = reverseList(head.next);
5    head.next.next = head;
6    head.next = null;
7    return tempList;
8}

解析:

链表反转,这是个老生常谈的问题了,其实方法非常多,下面再来看两个

 1public ListNode reverseList(ListNode head) {
 2    ListNode pre = null;
 3    while (head != null) {
 4        ListNode next = head.next;
 5        head.next = pre;
 6        pre = head;
 7        head = next;
 8    }
 9    return pre;
10}
11
12
13public ListNode reverseList(ListNode head) {
14    return reverseListInt(head, null);
15}
16
17private ListNode reverseListInt(ListNode head, ListNode newHead) {
18    if (head == null)
19        return newHead;
20    ListNode next = head.next;
21    head.next = newHead;
22    return reverseListInt(next, head);
23}