lintcode 旋转链表的问题 10C

样例
给出链表1->2->3->4->5->null和k=2

返回4->5->1->2->3->null

我的代码:
ListNode * rotateRight(ListNode * head, int k) {
// write your code here
if(head == NULL || head->next == NULL)
return head;
// 判断链表长度
int len = 1;
ListNode* temp = head;
while(temp)
{
temp = temp->next;
len += 1;
}
// 找到要断开链表的节点,即p
ListNode* p = head;
for(int i=1; i {
p = p->next;
}
// 把断开处的最后一个节点的指针域赋NULL
ListNode* headlast = p;
headlast->next = NULL;
// 把断开后的下一个节点插到newhead的后面
ListNode* newhead = new ListNode(0);
ListNode* q = p->next;
newhead->next = q;
ListNode* last;
while(q)
{
last = q;
q = q->next;
}
// last为最后一个节点,将之前的head链表插入到last后面
last->next = head;
return newhead->next;
}

    报的错误是:Segmentation fault (core dumped)
    请问问题出在哪?
0

1个回答

调试下,可能是head或者哪里没有分配内存

参考:http://blog.csdn.net/wangyuquanliuli/article/details/45792343

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
LintCode : 旋转链表
LintCode : 旋转链表
Lintcode:旋转链表
描述 给定一个链表,旋转链表,使得每个节点向右移动k个位置,其中k是一个非负数 样例 给出链表1->2->3->4->5->null和k=2 返回4->5->1->2->3->null   思路:先算出链表的长度len,然后 k%len,可以得出实际移动的次数。            然后使用一个快慢指针,快的先走k步,然后...
旋转链表-LintCode
给定一个链表,旋转链表,使得每个节点向右移动k个位置,其中k是一个非负数 样例 给出链表1->2->3->4->5->null和k=2 返回4->5->1->2->3->null#ifndef C170_H #define C170_H #include<iostream> using namespace std; struct ListNode{ int val; ListN
LintCode:旋转链表
给定一个链表,旋转链表,使得每个节点向右移动k个位置,其中k是一个非负数 您在真实的面试中是否遇到过这个题?  Yes 样例 给出链表1->2->3->4->5->null和k=2 返回4->5->1->2->3->null 标签 Expand   相关题目 Expand  /** * Definition for singly-linked l
LintCode:170 旋转链表
描述 给定一个链表,旋转链表,使得每个节点向右移动k个位置,其中k是一个非负数 样例 给出链表1-&amp;gt;2-&amp;gt;3-&amp;gt;4-&amp;gt;5-&amp;gt;null和k=2 返回4-&amp;gt;5-&amp;gt;1-&amp;gt;2-&amp;gt;3-&amp;gt;null 分析: 首先,遍历一遍链表得到链表长度len和原链表最后一个结点pNode。然后k=k%len,如果k为0,表示移动后为本身,直接返回head...
lintcode 170旋转链表
描述 给定一个链表,旋转链表,使得每个节点向右移动k个位置,其中k是一个非负数 样例 思路 计算链表个数len,然后先依次向右移动K个位置然后将后K%len个数字移动到前边来 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *nex...
lintcode练习-170. 旋转链表
170. 旋转链表 给定一个链表,旋转链表,使得每个节点向右移动k个位置,其中k是一个非负数 样例 给出链表1-&amp;gt;2-&amp;gt;3-&amp;gt;4-&amp;gt;5-&amp;gt;null和k=2 返回4-&amp;gt;5-&amp;gt;1-&amp;gt;2-&amp;gt;3-&amp;gt;null 实现思路: 定义两个指针left和right,然后求出结点的真实移动位置,移动的部分放在left中,未移动的部分放在right中...
【两次过】Lintcode 170. 旋转链表
给定一个链表,旋转链表,使得每个节点向右移动k个位置,其中k是一个非负数 样例 给出链表1-&gt;2-&gt;3-&gt;4-&gt;5-&gt;null和k=2 返回4-&gt;5-&gt;1-&gt;2-&gt;3-&gt;null 解题思路: 双指针法。 需要注意旋转操作,需要取k除链表长度的余数。 /** * Definition for Li...
Lintcode 翻转链表 系列问题
题目1 翻转链表 I 样例 给出一个链表1-&amp;gt;2-&amp;gt;3-&amp;gt;null,这个翻转后的链表为3-&amp;gt;2-&amp;gt;1-&amp;gt;null 这篇文章用图片很好的解释了翻转链表的常用的几种方法 我这里写一下方法2,3的python实现。 方法2:每两个相邻的节点依次翻转 def reverse2(head): p=head q=head.next head.next=None #he...
LintCode之8 旋转字符串
题目来源:旋转字符串 题目描述: 给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转) 样例: 对于字符串 “abcdefg”. offset=0 => “abcdefg” offset=1 => “gabcdef” offset=2 => “fgabcde” offset=3 => “efgabcd” Java代码:public
lintcode ----旋转字符串
void rotateString(string &str,int offset){ //wirte your code here if(str.empty()) return; offset=offset%str.length(); string res=""; for(int i=str.length(
Lintcode 旋转字符串
给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转) class Solution { public: /** * @param str: a string * @param offset: an integer * @return: nothing */ void rotateString(string &A,int offs
lintcode :旋转字符串
题目: 旋转字符串 给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转) 样例 对于字符串 &quot;abcdefg&quot;. offset=0 =&amp;gt; &quot;abcdefg&quot; offset=1 =&amp;gt; &quot;gabcdef&quot; offset=2 =&amp;gt; &quot;fgabcde&quot; offset=3 =&amp;gt; &quot;efgabcd&quot; 挑战
LintCode 关于链表问题的总结
首先,链表和有连续存储空间的数组不同,相邻两个节点之间的关系只靠next链接,因此在做很多操作时一定要记得保存p->next,p->next的改变一定要最后做操作, 否则一旦提取改变p后的下一个节点位置就丢失了。   每一个节点都有两段关系,它的前驱和后继,头节点只有后继。在做插入或删除时,某个节点的改变对应着相邻两个节点的改变,上一个节点的后继改变,下一个节点 的前驱改变,这些在操作时一定
[LintCode]8.旋转字符串
给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转) 样例 对于字符串 "abcdefg". offset=0 => "abcdefg" offset=1 => "gabcdef" offset=2 => "fgabcde" offset=3 => "efgabcd" 思路:旋转字符串先调用翻转字符串函数,再分别旋转三次可以达到效果 class Solution
8. 旋转字符串 —— LintCode
描述  给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转) 样例 对于字符串"abcdefg"。 offset=0 => "abcdefg" offset=1 => "gabcdef" offset=2 => "fgabcde" offset=3 => "efgabcd" 挑战  在数组上原地旋转,使用O(1)的额外空间 标
LintCode #8. 旋转字符串
LintCode #8. 旋转字符串 [问题地址]:https://www.lintcode.com/problem/rotate-string/description 解法一: class Solution: &quot;&quot;&quot; @param: str: An array of char @param: offset: An integer @return: nothing ...
lintcode:8. 旋转字符串
lintcode:8. 旋转字符串 给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转) https://www.lintcode.com/problem/rotate-string/description class Solution: &amp;amp;amp;quot;&amp;amp;amp;quot;&amp;amp;amp;quot; @param str: An array of char @param offset: ...
lintcode:旋转字符串
。。。
LintCode:旋转图像
 给定一个N×N的二维矩阵表示图像,90度顺时针旋转图像。 您在真实的面试中是否遇到过这个题?  Yes 样例 给出一个矩形[[1,2],[3,4]],90度顺时针旋转后,返回[[3,1],[4,2]] 挑战 能否在原地完成? 标签 Expand   相关题目 Expand  解题思路: 旋转90°其实可以理解为
旋转图像-LintCode
给定一个N×N的二维矩阵表示图像,90度顺时针旋转图像。 样例 给出一个矩形[[1,2],[3,4]],90度顺时针旋转后,返回[[3,1],[4,2]] 挑战 能否在原地完成?#ifndef C161_H #define C161_H #include<iostream> #include<vector> using namespace std; class Solution { pub
LintCode 8---旋转字符串
/* 给定一个字符串(以字符数组的形式给出)和一个偏移量,根据偏移量原地旋转字符串(从左向右旋转) */ public class Lint8 { public static void main(String[] args) { } public void rotateString(char[] str, int offset) { ...
左旋转二进制位-LintCode
位旋转 -—— 旋转(或循环移位)是类似于移位的操作, 不同的是一端脱落的那一位会被放回到另一端 在左旋转中, 左端掉下来的那一位会放在右端 假设 n 用 8 位二进制来存. 对 n = 11100101 左旋转 3 位, 得到 n = 00101111 (左移3位, 原先的前3位放在末尾). 如果 n 用 16 位或 32 位二进制来存, 那么对 n (000…11100101)左旋转了之后
LintCode 8. 旋转字符串
给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转)public class Solution { /** * @param str: An array of char * @param offset: An integer * @return: nothing */ public void rotateString(char[]...
lintcode - 旋转图像
题目描述:给定一个N×N的二维矩阵表示图像,90度顺时针旋转图像。 样例:给出一个矩形[[1,2],[3,4]],90度顺时针旋转后,返回[[3,1],[4,2]] 具体怎么转化,大家都知道,现在看看能不能有什么技巧能够使得代码写起来更容易,同时能够支持原地翻转。 实际上,对于这种翻转90度的情况,可以这样处理:先按副对角线翻转元素,再按水平中线翻转矩阵的行。如下图所示:
LintCode:旋转图像
LintCode:旋转图像public class Solution { /** * @param matrix: A list of lists of integers * @return: Void */ public void rotate(int[][] matrix) { // write your code here
LintCode:旋转字符串
LintCode:旋转字符串Pythonclass Solution: # @param s: a list of char # @param offset: an integer # @return: nothing def rotateString(self, s, offset): # write you code here i
lintcode: 旋转图像
 旋转图像 给定一个N×N的二维矩阵表示图像,90度顺时针旋转图像。 解题 顺时针旋转90度 就是 上下翻转,再主对角对折  public class Solution { /** * @param matrix: A list of lists of integers * @return: Void */ public void...
lintcode 8.旋转字符串
给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转)eg:对于字符串&quot;abcdefg&quot;offset=0 =&amp;gt;&quot;abcdefg&quot;offset=1 =&amp;gt;&quot;gabcdef&quot;offset=2 =&amp;gt;&quot;fgabcde&quot;offset=3 =&amp;gt;&quot;efgabcd&quot;思路:仔细分析可以发现,就是把从0~n-offset-1这一段反转,将n-offset~n-1这一
LintCode 旋转字符串
没有通过,不知道什么原因!class Solution { public: void recoverRotatedSortedArray(vector<int> &nums) { // write your code here int n = nums.size(); int m = 0 , i = 0; for (i = 0;
Lintcode 008 :旋转字符串
** Lintcode 008 :旋转字符串** 题干描述:给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转)样例: 对于字符串 “abcdefg”.offset=0 => “abcdefg” offset=1 => “gabcdef” offset=2 => “fgabcde” offset=3 => “efgabcd”public class Solution {
Lintcode:旋转字符串
给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转) 样例 对于字符串 "abcdefg". offset=0 => "abcdefg" offset=1 => "gabcdef" offset=2 => "fgabcde" offset=3 => "efgabcd" python: class Solution: """
lintcode 旋转字符串
public class Solution {     /*      * @param str: An array of char      * @param offset: An integer      * @return: nothing      */     public void rotateString(char[] str, int offset) {       
LintCode 8.旋转字符串
LintCode 8.旋转字符串 问题描述 给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转) 样例 对于字符串 “abcdefg”. offset=0 => “abcdefg” offset=1 => “gabcdef” offset=2 => “fgabcde” offset=3 => “efgabcd” 问题分析
LintCode 8 旋转字符串
题目:rotateString要求:给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转)样例:对于字符串 "abcdefg".offset=0 => "abcdefg" offset=1 => "gabcdef" offset=2 => "fgabcde" offset=3 => "efgabcd"算法要求:在数组上原地旋转,使用O(1)的额外空间解题思路:用直接定位法,来进行每个字符的
LintCode之旋转字符串
给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转)样例 对于字符串 “abcdefg”. offset=0 => “abcdefg” offset=1 => “gabcdef” offset=2 => “fgabcde” offset=3 => “efgabcd”public class Solution { /** * @param str: an arr
lintcode 旋转字符串II
描述给出一个字符串(以字符数组形式给出),一个右偏移和一个左偏移,根据给出的偏移量循环移动字符串。(left offest表示字符串向左的偏移量,right offest表示字符串向右的偏移量,左偏移量和右偏移量计算得到总偏移量,在总偏移量处分成两段字符串并交换位置)。 样例样例 1: 输入:str =”abcdefg”, left ...
链表-旋转链表-中等
描述给定一个链表,旋转链表,使得每个节点向右移动k个位置,其中k是一个非负数您在真实的面试中是否遇到过这个题?  样例给出链表1-&amp;gt;2-&amp;gt;3-&amp;gt;4-&amp;gt;5-&amp;gt;null和k=2返回4-&amp;gt;5-&amp;gt;1-&amp;gt;2-&amp;gt;3-&amp;gt;null题目链接程序 /** * Definition of singly-linked-list: * class ListNo...
python链表——旋转链表
输入:1-&gt;2-&gt;3-&gt;4-&gt;5-&gt;6-&gt;7,k=3 输出:5-&gt;6-&gt;7-&gt;1-&gt;2-&gt;3-&gt;4 思路: 1. k为倒数第3个节点,可以先找到倒数k+1个节点 2. 从k+1处断开,头尾重新相接即可实现旋转 3. 找到倒数k+1节点,可参照(找到链表的倒数第k个节点) 4. 引入两个外部操作指针cur1, cur...
旋转链表
给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。 示例 1: 输入: 1-&amp;gt;2-&amp;gt;3-&amp;gt;4-&amp;gt;5-&amp;gt;NULL, k = 2 输出: 4-&amp;gt;5-&amp;gt;1-&amp;gt;2-&amp;gt;3-&amp;gt;NULL 解释: 向右旋转 1 步: 5-&amp;gt;1-&amp;gt;2-&amp;gt;3-&amp;gt;4-&amp;gt;NULL 向右旋转 2 步: 4-&a