反转一个单链表。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
代码:
class ListNode(object): # 链表节点定义
def __init__(self, x):
self.val = x
self.next = None
class Solution(object): # 整体类似于头插法
def reverseList(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
p, rev = head, None # 让p指向该链表第一个节点,输出链表为None
while p:
rev, rev.next, p = p, rev, p.next # 头插法主体
‘’‘也以写成
temp = rev
rev = p
rev.next = temp
p = p.next
'''
return rev
两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。
给出两个整数 x 和 y,计算它们之间的汉明距离。
注意:
0 ≤ x, y < 231.
示例:
输入: x = 1, y = 4
输出: 2
解释:
1 (0 0 0 1)
4 (0 1 0 0)
↑ ↑
上面的箭头指出了对应二进制位不同的位置。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/hamming-distance
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution(object):
def hammingDistance(self, x, y):
"""
:type x: int
:type y: int
:rtype: int
"""
return bin(x ^ y).count('1')
知识点:
- ^ (python 位异运算法) 对应同一位置,数字不同则为1 。
例如: 5^ 6,其实是101^110,结果是011.在本次计算汉明距离即是用到此运算符。 - &(python 位与运算法)对应同一位置,数字都为1才为1,其他情况都是0.
例如: 5^ 6,其实是101^110,结果100. - | (python 位或运算符)对应同一位置,数字有一个为1即为1.
例如: 5^ 6,其实是101^110,结果111.