码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode.92. Reverse Linked List II

时间:2018-12-26 01:12:29      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:type   label   第一个   ext   ber   str   etc   within   malloc   



/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };1
. 。*/
struct ListNode* reverseBetween(struct ListNode* head, int m, int n) {
if(head==NULL||head->next==NULL)
return head;
int i,j;
struct ListNode *p,*a,*q,*bot;
p=(struct ListNode*)malloc(sizeof(struct ListNode));
p->next=head;
bot=p;
for(i=1;i<m;i++)
{
p=p->next;//把q指针放在m前一个数
}
a=p->next;
for(i=m;i<n;i++)
{
q=a->next;
a->next=q->next;//a自动移动
q->next=p->next;//这里不能写成q—>next=a 只是第一次行,插入的节点放在上一次插入节点之前
p->next=q;
}
return bot->next;
}


本身就是一个链表置逆的,但是有很多种可能报错。
1.Line x: member access within null pointer of type… 加判断指针是否为空就行

2.可能会出现好多种比较特殊的数据格式我自己之前并没有建立空节点来让指针放前,后来这种形式的就没法运行了

Input:[3,5] 1 2
Output:[3,5]
Expected:[5,3]
所以必须建立空节点,这种指针就无法交换了。
3.返回不能返回head
Input:[3,5] 1 2
Output:[3]
Expected:[5,3]
在从第一个数就开始对换的情况下,head指向的第一个节点被移动到后面去了,所以少了一个数。

 

leetcode.92. Reverse Linked List II

标签:type   label   第一个   ext   ber   str   etc   within   malloc   

原文地址:https://www.cnblogs.com/yuhaowang/p/10177156.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!