12:判断一个字符串是否是另一个字符串的子串; 我这里就是暴力的对比
13:把一个int型数组中的数字拼成一个串,这个串代表的数字最小; 先将数字转换成字符串存在数组中,在通过qsort排序,在排序用到的比较函数中,将要比较的两个字符串进行组合,如要比较的两个字符串分别是A,B,那么组合成,A+B,和B+A,在比较A+B和B+A,返回strcmp(A+B, B+A),经过qsort这么一排序,数组就变成从小到大的顺序了,组成的数自然是最小的。
14:输入一颗二叉树,输出它的镜像(每个节点的左右子节点交换位置); 递归实现,只要某个节点的两个子节点都不为空,就左右交换,让左子树交换,让右子树交换。
15:输入两个链表,找到它们第一个公共节点; 如果两个链表有公共的节点,那么第一个公共的节点及往后的节点都是公共的。从后往前数N个节点(N=短链表的长度节点个数),长链表先往前走K个节点(K=长链表的节点个数-N),这时两个链表都距离末尾N个节点,现在可以一一比较了,最多比较N次,如果有两个节点相同就是第一个公共节点,否则就没有公共节点。
原文出处: 陈太汉的博客 |