02-线性结构1. 一元多项式求导 (25)设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为n*xn-1。)输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格...
分类:
其他好文 时间:
2015-06-15 18:03:02
阅读次数:
191
这道题目的关键词是suffix,suffix是后缀、词尾的意思,因此这道题目的难度有所降低,可以通过从尾部向前检索的方法来找到共同部分,但是题目所给的显然是单向链表结构,难以倒着查找,如果使用此方法还需要反转链表,因此我们可以考虑另一种方法。
STL中有红黑树容器set,我们首先建立一个容纳int的set,然后遍历第一个单词的链表,把所有结点的地址压入set,然后在对第二个链表遍历时,不断的把当前结点的地址从set中进行查找,如果找到了,说明到达了公共部分,直接输出此地址,一直没找到,则说明无公共部分。...
分类:
其他好文 时间:
2015-06-09 13:47:43
阅读次数:
163
最近看了《剑指offer》这本书,遇到了一个问题:反转链表
题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后的链表的头结点。
链表结点定义如下:struct ListNode
{
int _data;
ListNode * _pNext;
};
解决方案如下:ListNode * ReverseList(ListNode * pHead)
{ ListNod...
分类:
其他好文 时间:
2015-06-05 22:39:32
阅读次数:
161
题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。思路:假设有链表A->B->C->D->E->F->G。在反转链表过程中的某一阶段,其链表指针指向为:AF->G。也就是说在结点D之前的所有结点都已经反转,而结点D后面的结点E开始的所有结点都没有反转。这样D跟E之间存在了...
分类:
其他好文 时间:
2015-05-26 13:58:59
阅读次数:
94
反转链表,用了一个比较笨的方法。public class Solution { public ListNode reverseList(ListNode head) { if(head == null || head.next == null) retur...
分类:
其他好文 时间:
2015-05-21 00:00:01
阅读次数:
285
题目要求:在O(n)的时间内反转链表,并返回反转后链表的头指针。
分析:求解链表问题首先一定要考虑非空问题,而且要注意终止的位置。
如图所示,反转的时候定义三个节点,pCur代表当前节点、pNext代表指向的下一个节点、pPre代表前一个节点。有了这三个节点就可以从前往后遍历,而且保证链表不会断...
分类:
编程语言 时间:
2015-05-19 16:43:48
阅读次数:
166
思路:定义四个结点,前结点preNode,当前结点node,下一个结点nextNode,翻转结点reverseNode。遍历结点,设置node结点下一个结点为preNode,把当前结点node赋给preNode,把nextNode赋给node public static ListNote reverseListNode(ListNote headNode) {
if(headNod...
分类:
其他好文 时间:
2015-05-17 16:47:04
阅读次数:
109
带头结点的链表结点定义如下:1 struct ListNode2 {3 int value;4 ListNode *next;5 };代码如下: 1 ListNode* Reverse(ListNode *pHead) 2 { 3 ListNode *pReverse = N...
分类:
其他好文 时间:
2015-05-16 16:11:15
阅读次数:
116
Reverse a singly linked list.解题思路对于非递归实现,思路是依次将从第二个结点到最后一个结点的后继设为头结点,然后将该节点设为头结点(需记住将原头结点的后继设为空)。
对于递归实现,首先反转从第二个结点到最后一个结点的链表,然后再将头结点放到已反转链表的最后,函数返回新链表的头结点。递归实现代码1//Runtime:10 ms
class Solution {
publ...
分类:
其他好文 时间:
2015-05-16 14:51:32
阅读次数:
147
定义一个函数,输入一个链表的头结点,反转该链表,并输入反转后链表的头结点。
链表结点定义如下:
struct ListNode{
int m_nKey;
struct ListNode* m_pNext;
};ListNode *ReverseList(ListNode *phead)
{
//定义反转后链表的头结点
ListNode *pReverseHead=NULL;
//指...
分类:
其他好文 时间:
2015-05-14 22:04:34
阅读次数:
114