小言_互联网的博客

LeetCode——第二百零六题(C++):反转链表

301人阅读  评论(0)

题目
反转一个单链表。

示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL

进阶:
你可以迭代或递归地反转链表。你能否用两种方法解决这道题?

运行成功的代码

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* reverseList(ListNode* head) 
    {
        ListNode* p;
        ListNode* q;
        ListNode* r;
        p=head;
        q=NULL;
        while(p)
        {
            r=p->next;
            p->next=q;
            q=p;
            p=r;
        }
        head=q;
        return head;
    }
};

运行结果


转载:https://blog.csdn.net/weixin_45398231/article/details/101620238
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场