题解 | #反转链表#

反转链表

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

class Solution
{
    public ListNode ReverseList(ListNode pHead)
    {
        if(pHead == null) // 确保输入不为空
            return null;
        ListNode temp = null; // 中间保存变量
        ListNode reversedHead = null; // 输出标量
        ListNode currentListNode = pHead; // 当前链表节点,初始时为首元节点
        ListNode previousListNode = null; // 先前链表节点
                // 对链表进行循环,当前链表节点存储数据为null停止
        while (currentListNode != null)
        {
            temp = currentListNode.next;// 存储链表下一个节点数据
            currentListNode.next = previousListNode;// 更新链表下一个数据,指向链表前一个节点数据,将null值插入该链表中
            if(temp == null) // 当链表循环一遍过后,temp将变为零,此时可以得到反转后的链表
                reversedHead = currentListNode;                
            previousListNode = currentListNode; // 更新先前链表阶段,进1
            currentListNode = temp; // 更新链表当前数据,链表节点前进1
        }
        return reversedHead;
    }
}        


#力扣刷题#
全部评论

相关推荐

起一个响亮的名字吧xzx:学习 c++
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务