思路: 比较两个链表端点值的大小,通过递归的方式排列。 1 #include 2 using namespace std; 3 4 struct ListNode 5 { 6 int val; 7 ListNode *next; 8 ListNode(int v = 0...
分类:
编程语言 时间:
2015-06-22 16:11:07
阅读次数:
123
思路: 头尾指针,向中间遍历,依据条件交换元素。 1 #include 2 using namespace std; 3 4 void reOrder(int *pData, unsigned int len, bool (*func)(int)) 5 { 6 if(pData == ...
分类:
编程语言 时间:
2015-06-20 18:22:46
阅读次数:
163
题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。例如输入图中的链表 1 和链表 2,则合并之后的升序链表如链表 3 所示。链表结点定义如下:typedef struct Node{ int m_nValue; struct Node *m_pNext;...
分类:
编程语言 时间:
2015-06-20 14:18:12
阅读次数:
169
转载请注明出处:http://blog.csdn.net/ns_code/article/details/28128551题目描写叙述:输入一个正整数数组,把数组里全部数字拼接起来排成一个数。打印能拼接出的全部数字中最小的一个。比如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为3...
分类:
其他好文 时间:
2015-06-20 10:28:51
阅读次数:
148
题目:输入一个整数数组,实现一个函数来解决该数组中数字的位置,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。本题思路较为简单,我们只需维护两个指针:第一个指针pHead 初始化为数组的第一个元素,第二个指针pTail 初始化为数组的最后一个元素。根据题目要求:所有奇数位于数组的前半部分...
分类:
编程语言 时间:
2015-06-19 21:36:22
阅读次数:
173
问题描述:输入一个英文句子,反转句子中的单词的顺序,但单词内字符的顺序不变;(为简单起见,标点符号与普通字符当做一样处理)
示例 :输入:“I am a student.”
输出: “.student a am I”
策略 :策略是先反转整个字符串,在根据空格划分单词,然后依次反转每个单词
代码 :
public clas...
分类:
编程语言 时间:
2015-06-19 18:47:31
阅读次数:
129
题目:输入两个二叉树A和B,判断B是不是A的子结构。思路:遍历A树找到B树的根节点,然后再判断左右子树是否相同。不相同再往下找。重复改过程。子结构的描述如下图所示:C++代码:#includeusing namespace std;struct BinaryTreeNode{ int ...
分类:
其他好文 时间:
2015-06-18 14:58:26
阅读次数:
155
题目意思:用队列实现栈,push(),pop(),top(),empty()思路:用两个queue,pop时将一个queue的元素pop再push到另一个队列,queue只留最后一个元素,并pop,再将目标队列变为另一个 ps:用栈实现队列,参考剑指offer 1 class Stack { 2 ....
分类:
其他好文 时间:
2015-06-17 10:52:17
阅读次数:
85
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为 1.解法一: 这道题最直观的解法就是遍历一遍数组,这样我们就能找到最小的元素。这种思路...
分类:
编程语言 时间:
2015-06-16 21:11:07
阅读次数:
197
题目:输入员两个递增排序的链表,合并这两个链表并使新的链表中的结点仍然是按照递增排序的。思路:首先,定义两个头节点分别为Head1和Head2的链表,然后比较第一个节点的值,如果是Head1->mValue比Head2->mValue小,那么头节点,就是Head1,递归实现后面的节点的排序。C++代...
分类:
编程语言 时间:
2015-06-15 16:15:10
阅读次数:
138