题解 | #链表内指定区间反转#

链表内指定区间反转

https://www.nowcoder.com/practice/b58434e200a648c589ca2063f1faf58c

/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 * };
 */
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param head ListNode类 
 * @param m int整型 
 * @param n int整型 
 * @return ListNode类
 */
 
#include <stdlib.h>
struct ListNode* reverseBetween(struct ListNode* head, int m, int n ) {
    struct ListNode *pre = NULL;
    struct ListNode *nex = NULL;
    struct ListNode *H = (struct ListNode *)malloc(sizeof(struct ListNode));
    struct ListNode *L = NULL;
    H->next = head;
    if(H->next->next == NULL)
    return head;
    if(H->next == NULL)
    return NULL;

    int i;
    for(i = 0;i<m-1;i++)
    H = H->next;
    L = H;
    H = H->next;
    pre = H;
    nex = H->next;
    i = 0;
    while(i<n-m)
    {
        pre->next = nex->next;
        nex->next = H;
        H = nex;
        nex = pre->next;
        i++;
    }
    if(m == 1)
    return H;
    L->next = H;
    return head;
}

全部评论

相关推荐

10-13 17:47
门头沟学院 Java
wulala.god:图一那个善我面过,老板网上找的题库面的
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务