摘要: 最简单的思路,另开一个list,初始化为仅有head一个节点,head移动到下一个节点。然后开始比较head和tmp的val大小,如果head小,那么插在最前面(注意保持tmp为表头),如果head大,那么tmp一直遍历至表尾或至节点值比head大处。 89ms 更快的算法是先比较head和sort 阅读全文
posted @ 2016-04-03 21:56 co0oder 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 将链表分成三段,中间一段reverse后再链接。 链表中节点位置从1开始计数。 注意m可能为1,所以要加上if(last == start) head = end; 不然会丢失数据,因为reverse后head是reverse一段的最后一节点,只返回head的话head之前的节点全部丢失。 4ms 阅读全文
posted @ 2016-04-03 21:42 co0oder 阅读(183) 评论(0) 推荐(0) 编辑
摘要: ver0: 最简单的思路,得到中间节点,把这之后的节点放入stack中,再从head开始,把stack.top()插入。 具体解释:得到slow后,分两种情况考虑,链表长度为偶,slow为前半段的最后一个节点;链表长度为奇,slow为正中间节点的前一个节点。两种情况下reoder后slow->nex 阅读全文
posted @ 2016-04-03 20:49 co0oder 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 1 ListNode* reverseList(ListNode* head){ 2 if (head==NULL || head->next==NULL) return head; 3 ListNode *pre=head, *cur=pre->next, *post; 4 pre->next = NULL; 5 while (cur!=NULL){ ... 阅读全文
posted @ 2016-04-03 20:35 co0oder 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 输出数字a,保留两位小数 阅读全文
posted @ 2016-04-03 20:24 co0oder 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 得到带空格的string输入 阅读全文
posted @ 2016-04-03 20:23 co0oder 阅读(136) 评论(0) 推荐(0) 编辑
摘要: getMid函数中,fast一次走2步,slow一次走1步,因此假设全长len,len偶时,slow到达前半段的最后一个节点,len奇时,slow到达正中间的节点,两种情况中,slow->next均为后半段的起始节点。 阅读全文
posted @ 2016-04-03 20:22 co0oder 阅读(192) 评论(0) 推荐(0) 编辑