题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
输入: [2,2,1]
输出: 1
解题思路:
- 利用HashMap存储,key为每个数字,value为每个数字出现的次数。最后遍历map找到value为1的数字。
- 利用位运算,根据a^a=0,a^0=a,出现两次的数字进行位运算会得0,所以最后剩下的那个数字就是出现一次的数字。
题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。
输入: [2,2,3,2]
输出: 3
解题思路:
- 利用HashMap存储,key为每个数字,value为每个数字出现的次数。最后遍历map找到value为1的数字
题目:反转一个单链表。
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
解题思路:
- 先定义一个为null的prevNote表示前置节点,然后在定义一个currNote等于headNote表示当前节点。循环遍历headNote节点,直到headNote.next为null结束。
- 第一步获取currNote的下一个节点作为临时变量tempNote。
- 第二步让当前节点currNote的下一个节点指向prevNote。
- 第三步设置prevNote为currNote。
- 第四步设置currNote等于tempNote。