LeetCode92

这里写图片描述

这里写图片描述

这里写图片描述

include”stdio.h”

include”string.h”

struct ListNode {
int val;
struct ListNode *next;
};

struct ListNode* reverseBetween(struct ListNode* head, int m, int n) {
struct ListNode *mPriv, *priv, *mth, *tail;

 struct ListNode *cur = head;
mPriv = priv = mth = NULL;
int i;
i = 1;

while (i <= m)
{
    mPriv = mth;
    mth = cur;
    if (cur != NULL)
        cur = cur->next;
    i++;
}

i = 0;
tail = mth;
while (i <= (n - m))
{
    mth->next = priv;
    priv = mth;
    mth = cur;
    if (cur != NULL)
        cur = cur->next;
    i++;
}

if (mPriv == NULL)
    head = priv;
else
    mPriv->next = priv;

tail->next = mth;

return head;

}
main(void){
struct ListNode *head;

struct ListNode  *new_node1, *new_node2, *new_node3, *new_node4,*new_node5;

new_node1 = (struct ListNode  *)malloc(sizeof(struct ListNode));
new_node1->val = 1;
head = new_node1;

new_node2 = (struct ListNode  *)malloc(sizeof(struct ListNode));
new_node2->val = 2;
new_node1->next = new_node2;

new_node3 = (struct ListNode  *)malloc(sizeof(struct ListNode));
new_node3->val = 3;
new_node2->next = new_node3;

new_node4 = (struct ListNode  *) malloc(sizeof(struct ListNode));
new_node4->val = 4;
new_node3->next = new_node4;


new_node5 = (struct ListNode  *)malloc(sizeof(struct ListNode));
new_node5->val = 5;
new_node4->next = new_node5;

new_node5->next = NULL;

while (head != NULL)
{
    printf("%d", head->val);
    head = head->next;
}
reverseBetween(&new_node1, 2, 4);
while (head != NULL)
{
    printf("%d", head->val);
    head = head->next;
}

}

这里写图片描述

这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_42664961/article/details/82285847