刷题笔记(十)——反转链表

刷题笔记(十)——反转链表

题目描述

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

思路:采用栈,从头遍历将数值入栈,再从头遍历出栈给节点赋值。

/*
struct ListNode {
	int val;
	struct ListNode *next;
	ListNode(int x) :
			val(x), next(NULL) {
	}
};*/
class Solution {
public:
    ListNode* ReverseList(ListNode* pHead) {
        stack<int> s;
        ListNode* p=pHead;
        while(p!=NULL)
        {
            s.push(p->val);
            p=p->next;
        }
        ListNode* q=pHead;
        while(q!=NULL)
        {
            q->val=s.top();
            s.pop();
            q=q->next;
        }
        return pHead;
    }
};

评论区看到一个代码,写的挺妙的

发布了36 篇原创文章 · 获赞 19 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/GJ_007/article/details/105418444