【LeetCode 206. Reverse Linked List】初级题目:反转链表(C语言实现)

Reverse a singly linked list.Example:Input: 1->2->3->4->5->NULLOutput: 5->4->3->2->1->NULLFollow up:A linked list can be reversed either iteratively or recursively...
摘要由CSDN通过智能技术生成

【写在前面】

小弟不才,作为CS专业本科生,很多知识浮于表面,终于动手刷leetcode,图个开心吧!
先从一道十分基础的简单题[206.反转链表]起步。限于知识生疏了和脑子不灵光,整琢磨了一天,总算通过了。。。
其实大体思路不复杂,也有很多博主讲的很清晰,文后会放写的很清晰的博主的原贴链接,我在这就记录几个非常基础但却有给我带来困惑的知识细节吧。

【原题描述】

Reverse a singly linked list.
Example:

Input: 1->2->3->4->5->NULL
Output: 5->4->3->2->1->NULL

Follow up:
A linked list can be reversed either iteratively or recursively. Could you implement both?

【解题思路】

核心思路就是将链表中的每个指针反向,原链表头变表尾,返回原链表尾。
具体操作有两个方法:
1.定义三个指针变量分别指向当前节点、前一个节点、下一个节点,然后依次进行反转操作。这里直接上一个大神的动图,一目了然,超级赞!结尾会放原贴并且在此安利给大家!!!
在这里插入图片描述
2. 对原链表做头删操作、新链表做头插操作
定义两个指针变量newHead和tempNode分别用于表示新链表头和临时存储操作节点。该方法对于熟悉链表头插、头删的朋友是一个非常巧妙的方法

【细节问题】

  1. 链表的节点指针表达式(如curr->next这种形式)在赋值表达式左右两端的意义
    next = curr->next; // 在等号右边表示next节点获取curr节点所指向的节点的地址
    curr->
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值