快找工作了,好紧张啊!~~
记录自己练习的剑指offer的练习题,以总结所学。
1.反转链表; 2.链表中倒数第k个节点; 3.调整数组顺序使奇数位于偶数前面;
对于 问题三:
我自己的理解是,用两个哨兵,一个在数组的靠前方,一个在数组的靠后方,前方的数组找偶数,后方的数组找奇数,然后调整他们的数值。 这个想法不稳定。
正确答案给出的解释是: 用两个哨兵,只是两个哨兵都是从数组前面到后面遍历,一个找偶数,一个找奇数,如果偶数的坐标小于奇数的坐标,就互换数字和坐标,否则,两个哨兵都往后走。可能还存在一些特殊情况,比如,数组中只有偶数,或者只有奇数。。