LeetCode-206-反转链表-C语言

类似于滑动窗口,用三个指针组成一个窗口,每次移动一个,将中间指针的mid->next = rear,相当于反转了一个节点,不断的滑动到最后,完成一个链表的反转。

typedef struct ListNode Node;
Node *reverseList(Node *head){
    Node *front = head;
    Node *mid = NULL;
    Node *rear = NULL;
    
    if(!head){
        return NULL;
    }
    
    while(front){
        rear = mid;
        mid = front;
        front = front->next;
    
        mid->next = rear;
    }
    
    return mid;
}

你可能感兴趣的:(LeetCode,Leetcode)