leetcode.92. Reverse Linked List II
Posted yuhaowang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode.92. Reverse Linked List II相关的知识,希望对你有一定的参考价值。
/**
* 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.可能会出现好多种比较特殊的数据格式我自己之前并没有建立空节点来让指针放前,后来这种形式的就没法运行了
以上是关于leetcode.92. Reverse Linked List II的主要内容,如果未能解决你的问题,请参考以下文章
[LeetCode92]Reverse Linked List II
#Leetcode# 92. Reverse Linked List II
Leetcode 92. Reverse Linked List II
leetcode.92. Reverse Linked List II