您的位置:首页 > 新闻 > 资讯 > 平面设计技术培训机构_免费精品发布页怎么设计_郑州网络推广_网络营销带来的效果

平面设计技术培训机构_免费精品发布页怎么设计_郑州网络推广_网络营销带来的效果

2025/3/6 2:13:48 来源:https://blog.csdn.net/m0_52779966/article/details/145928649  浏览:    关键词:平面设计技术培训机构_免费精品发布页怎么设计_郑州网络推广_网络营销带来的效果
平面设计技术培训机构_免费精品发布页怎么设计_郑州网络推广_网络营销带来的效果

题目描述:

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

示例 1:

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

逻辑:

1:  面对这个题一下子能想到就是栈的结构,先逐个将链表的节点存入栈中,再挨个从栈中取出,取出过程中,改变节点的next指针即可。

2:  由栈其实又可以想到递归,栈的数据结构和递归非常相似,一定要去习惯联想;

3:(三兄弟当然是在一起的)迭代法,这三个基本一直在一起。

#if 1
class Solution {
public:ListNode* reverseList(ListNode* head) {return recur(head, nullptr);           // 调用递归并返回}
private:ListNode* recur(ListNode* cur, ListNode* pre) {if (cur == nullptr) return pre;        // 终止条件ListNode* res = recur(cur->next, cur); // 递归后继节点cur->next = pre;                       // 修改节点引用指向return res;  }
};
#endif
#if 0
class Solution {
public:ListNode* reverseList(ListNode* head) {ListNode *cur = head, *pre = nullptr;while(cur != nullptr) {ListNode* tmp = cur->next; // 暂存后继节点 cur.nextcur->next = pre;           // 修改 next 引用指向pre = cur;                 // pre 暂存 curcur = tmp;                 // cur 访问下一节点}return pre;}
};
#endif

递归的一个基本结构:

终止条件;向下传递;实际行为;返回上一层;

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com