反转链表

给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。 
如当输入链表{1,2,3}时,
经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。
以上转换过程如下图所示:
struct ListNode* ReverseList(struct ListNode* head) {
    if (head == NULL || head->next == NULL) {
        return head;
    }
    struct ListNode* newHead = NULL;
    struct ListNode* curr = head;
    while (curr != NULL) {
        struct ListNode* temp = curr->next;
        curr->next = newHead;
        newHead = curr;
        curr = temp;
    }
    return newHead;
}
posted @ 2023-07-11 20:36  歪爱慕外  阅读(16)  评论(0)    收藏  举报