当前位置: 首页 > news >正文

常平镇仿做网站网店代运营服务

常平镇仿做网站,网店代运营服务,徐州网站开发,怎么做单页网站导航原题链接#x1f517;#xff1a;反转链表 难度#xff1a;简单⭐️ 题目 给你单链表的头节点 head #xff0c;请你反转链表#xff0c;并返回反转后的链表。 示例 1#xff1a; 输入#xff1a;head [1,2,3,4,5] 输出#xff1a;[5,4,3,2,1] 示例 2#xff1a;…原题链接反转链表 难度简单⭐️ 题目 给你单链表的头节点 head 请你反转链表并返回反转后的链表。 示例 1 输入head [1,2,3,4,5] 输出[5,4,3,2,1] 示例 2 输入head [1,2] 输出[2,1] 示例 3 输入head [] 输出[] 提示 链表中节点的数目范围是 [0, 5000] -5000 Node.val 5000 进阶链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题 题解 迭代法 题解 有两种常见的方法来解决这个问题迭代和递归。 迭代方法 初始化三个指针prev 初始化为 nullptr因为反转后的链表第一个节点的 next 应该是nullptrcurrent 初始化为头节点 headnext 用于临时存储下一个节点。遍历链表使用一个循环当 current 不为 nullptr 时执行以下操作 保存 current 的下一个节点到 next。将 current 的 next 指向 prev实现反转。更新 prev 和 current 为下一个节点prev currentcurrent next。 当循环结束时prev 将指向反转后的头节点返回 prev。 递归方法 基本情况如果 head 是 nullptr 或者 head-next 是 nullptr说明链表为空或只有一个节点直接返回 head。递归反转递归调用 reverseList 函数传入 head-next 作为参数获取反转后的链表的头节点。重新链接节点将当前节点 head 的下一个节点的 next 指向 head实现反转。设置当前节点的 next 为 nullptr防止链表形成环。返回新的头节点递归调用返回的头节点。 复杂度时间复杂度O(n)空间复杂度O(1)。过程迭代法如下代码。c demo #include iostream// 定义链表节点 struct ListNode {int val;ListNode* next;ListNode(int x) : val(x), next(nullptr) {} };// 解决方案类 class Solution { public:// 迭代方法反转链表ListNode* reverseList(ListNode* head) {ListNode* prev nullptr;ListNode* current head;ListNode* next nullptr;while (current ! nullptr) {next current-next; // 保存下一个节点current-next prev; // 反转当前节点的指针prev current; // 移动prev到当前节点current next; // 移动current到下一个节点}return prev; // 返回新的头节点} };// 主函数用于演示 int main() {Solution solution;// 创建一个示例链表: 1 - 2 - 3 - 4 - 5ListNode* head new ListNode(1);head-next new ListNode(2);head-next-next new ListNode(3);head-next-next-next new ListNode(4);head-next-next-next-next new ListNode(5);// 打印原始链表std::cout Original List: ;ListNode* current head;while (current ! nullptr) {std::cout current-val - ;current current-next;}std::cout nullptr std::endl;// 反转链表ListNode* reversedHead solution.reverseList(head);// 打印反转后的链表std::cout Reversed List: ;current reversedHead;while (current ! nullptr) {std::cout current-val - ;current current-next;}std::cout nullptr std::endl;// 释放链表内存while (reversedHead ! nullptr) {ListNode* tmp reversedHead;reversedHead reversedHead-next;delete tmp;}return 0; }输出结果 Original List: 1 - 2 - 3 - 4 - 5 - nullptr Reversed List: 5 - 4 - 3 - 2 - 1 - nullptr
http://www.dnsts.com.cn/news/83326.html

相关文章:

  • 企业网站建设的三个核心问题上海十大公关公司排名
  • 黔东南网站建设gzklyy网站建设word文档
  • 网站 不 备案wordpress取消评论
  • 帝国做的网站打开速度新媒体营销推广公司
  • 建站之星7大核心价值做动漫网站的意义
  • 做网站平面一套多少钱网站宝建站助手
  • 网站专栏建设企业仓库管理系统
  • 网站建设服务费属于什么科目工商注册代理
  • 邵阳网站优化学校网站制作模板
  • 多语言网站多域名推广企业网站建设公司制作平台
  • 素质课网站设计与建设最好的机票网站建设
  • 最优惠的郑州网站建设义乌比较好的外贸公司
  • 个人网站不能做淘宝客WordPress潮流媒体主题
  • 10大免费软件下载网站工厂生产管理系统
  • 网站模板制作wordpress 版权加密
  • 网站的速度诊断怎么做做美食软件视频网站有哪些
  • 开的免费网站能赚钱吗港南网站建设
  • 江门阿里巴巴网站建设网站开发个人简历word下载
  • 自助建站系统下载软件工程导论
  • 企业邮箱怎么填写正确丹阳网站优化
  • 小红书软文推广鞍山seo公司
  • 北京做网站源代码的个人网站制作软件
  • 设计网站意味着什么厦门网站建设a
  • 棋牌网站开发网站色调红黑
  • 北京网站优化外包wordpress设置在新页面打开空白
  • 网站建设与网页设计...建网赌网站流程
  • 抚州市建设局招标办网站校园网站建设招标公告
  • 网站外包建设 请示做网站的程序员留备份
  • 品牌网站建设毛尖c合肥建设工程市场价格信息
  • 南京网站建设哪里好sem托管公司