剑指Offer 15 输入一个链表,输出该链表中倒数第k个结点

题目描述

输入一个链表,输出该链表中倒数第k个结点

思路

  1. 最开始就是在想说从头开始找到第k个节点,后来发现人家是要找到倒数的;立马傻眼了;因为链表给的是单向的;而且没有尾节点你也不可能反向找啊;
  2. 书上的想法就油然而生了,因为我的链表只放了1,2,3三个节点,所以我就想一边遍历带两个指针,后一个开始比前一个晚2个元素;指向倒数第三个;然后一直到队尾;

    more >>

剑指Offer 14 *调整数组顺序使奇数位于偶数前面

题目描述

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。

思路

1.书上其实没要求调换完之后有序,所以实际上我是两个指针头尾;如果是前指针是偶数,后指针是奇数,就直接调换,可是没想到顺序的问题;
2.如果是排序的话,最简单的的想法是新建一个数组,遍历先把奇数放进去,再放偶数,不过开辟了新的数组
3.如果不想用数组,那就得使用一个神奇的相邻交换了;冒泡其实也是这样的,只不过他的条件是大于或者小于,有n个数,就遍历n个数,然后遍历n次,总会好的;
那么本体中我们要保证的就是偶数不能出现在奇数的前面;

more >>