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(Node* head) { </