1、二进制操作:
a & (a - 1):消去二进制最右边一个1
a & -a:最右侧的1
异或满足交换律:
a ^ b = c <=> a^c = b
a ^ 0 = a
a ^ a = 0
2、链表有无环以及环的起点

假设起点->入环点为x,入环点->指针交汇点为z,指针交汇点->入环点为y,又因为快指针速度=2 * 慢指针速度(快指针比慢指针多一圈),则
dis_slow + len_circle = dis_fast
x + z + x + y = x + y + z + y
x = y
Node* find_circle_begin(<