15. 反转链表

    xiaoxiao2024-10-30  73

    输入一个链表,反转链表后,输出新链表的表头。

    思路:把当前节点的下一个节点的next指针指向当前节点,那么这样就把当前节点和下一个节点反转了。但是为了循环,在改变当前节点下一个节点的next指针时候,应该先记录下来原来的next指针。然后依次循环。

    /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* ReverseList(ListNode* pHead) { if (pHead == NULL) return NULL; ListNode* p1 = pHead, *p2 = p1->next; p1->next = NULL; while(p2) { ListNode* p3 = p2->next; p2->next = p1; p1 = p2; p2 = p3; } return p1; } };

     

    最新回复(0)