栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

leetcode刷题记录|206

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

leetcode刷题记录|206

leetcode刷题记录|206 _反转链表

力扣第206题

类型:链表题目:

示例1示例2示例3解题思路 c++python
作者 github链接: github链接

力扣第206题 类型:链表 题目:

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。

示例1

输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]
示例2

输入:head = [1,2]
输出:[2,1]
示例3
输入:head = []
输出:[]
解题思路

思路细节:

    定义两个指针:prev:前指针节点;curr:当前指针节点前指针节点指向null,curr放在链表的head处curr!=null就一直循环因为下一步prev指向了curr->next,连接后面的链表即将断开,这是我们做一个提前准备,搞一个next指针当临时的给后面的链表做一个标志,以便curr向后面迭代。curr->next原来链接后面的值,现在让它断开,来让prev来连接curr->next。prev向后面移动,curr向后面移动(这里就用到了前面准备好的临时变量next,正是因为有next,才能让curr找到下一个位置继续迭代)迭代完成,返回整个链表,实现反转
c++
class Solution {
public:
    ListNode* reverseList(ListNode* head) {
         
        ListNode * prev = NULL;//前指针节点指向null
        ListNode *curr = head;//curr放在链表的head处
        while(curr){//curr!=null就一直循环
            ListNode *next = curr->next;//因为下一步prev指向了curr->next,连接后面的链表即将断开,这是我们做一个提前准备,搞一个next指针当临时的给后面的链表做一个标志,以便curr向后面迭代。
            curr->next = prev;//curr->next原来链接后面的值,现在让它断开,来让prev来连接curr->next
            prev = curr;//prev向后面移动
            curr = next;//curr向后面移动(这里就用到了前面准备好的临时变量next,正是因为有next,才能让curr找到下一个位置继续迭代)
        }
        return prev;//迭代完成,返回整个链表,实现反转

    }
};
python
# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def reverseList(self, head: ListNode) -> ListNode:
        prev = None
        curr = head
        while curr is not None:
            next = curr.next
            curr.next = prev
            prev = curr
            curr = next
        return prev

解题草稿纸(仅供参考,如有错误还望指正)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/738705.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号