206.Reverse Linked List

给定一个链表,要求将其反转:
Input: 1->2->3->4->5->NULL
Output: 5->4->3->2->1->NULL

思路:运用2个临时指针,一个表示反转后的链表的头结点 p,一个表示给定链表的当前节点 tmp_p = head,使用  tmp_p -> next = p;     p = tmp_p; 遍历完整个链表。

ListNode* reverseList(ListNode* head) {
    if (!head) return head;
    ListNode* p = nullptr;
    ListNode* tmp_p = nullptr;
    while (head) {
        tmp_p = head;
        head = head->next;
        tmp_p->next = p;
        p = tmp_p;
    }
    return p;
}

 

posted @ 2020-05-11 15:10  星海寻梦233  阅读(94)  评论(0编辑  收藏  举报