题解 | #反转链表#

反转链表

https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca

//反转链表 用stack 由于默认的copy函数会出问题,应该手动去加提前判定
//if(Phead == nullptr) return Phead;
/*
struct ListNode {
	int val;
	struct ListNode *next;
	ListNode(int x) :
			val(x), next(NULL) {
	}
};*/
class Solution {
public:
    ListNode* ReverseList(ListNode* Phead) {
        stack <ListNode*> nodeStack;
        ListNode* newPhead=nullptr;
		if(Phead == nullptr) return Phead;
        while (Phead->next != NULL)
        {
            nodeStack.push(Phead);
            Phead = Phead->next;
        }
        newPhead = Phead;
        while (!nodeStack.empty())
        {
            Phead->next = nodeStack.top();
            nodeStack.pop();
            Phead = Phead->next;
        }
        Phead->next = NULL;
        return newPhead;
    
    }
};

全部评论

相关推荐

点赞 评论 收藏
分享
迷茫的大四🐶:那你问他上班之后老实了没
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务