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

推荐佛山企业网站建设百度号码认证平台

推荐佛山企业网站建设,百度号码认证平台,女性时尚网站源码,佛山做网站建设价格操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 输入一个链表,输出该链表反转之后的链表。例如: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 解决方案 这个…
  • 操作系统:ubuntu22.04
  • IDE:Visual Studio Code
  • 编程语言:C++11

题目描述

输入一个链表,输出该链表反转之后的链表。例如:

输入: 1->2->3->4->5->NULL

输出: 5->4->3->2->1->NULL

解决方案

这个问题可以通过多种方法解决,包括递归法和迭代法。下面分别介绍这两种方法。

方法一:迭代法

使用三个指针来逐步反转链表中的每一个节点,直到遍历完整个链表。
代码实现(C++)

struct ListNode {int val;ListNode* next;ListNode( int x ) : val( x ), next( nullptr ) {}
};ListNode* reverseList( ListNode* head )
{ListNode* prev = nullptr;  // 前驱节点ListNode* curr = head;     // 当前处理的节点while ( curr != nullptr ){ListNode* nextTemp = curr->next;  // 暂存当前节点的下一个节点curr->next         = prev;        // 将当前节点指向前驱节点prev               = curr;        // 移动前驱节点到当前节点curr               = nextTemp;    // 移动到下一个待处理节点}return prev;  // 新的头节点是原链表的最后一个节点
}int main()
{ListNode* node1 = new ListNode(1);node1->next = new ListNode(2);node1->next->next = new ListNode(3);node1->next->next->next = new ListNode(4);node1->next->next->next->next = new ListNode(5);ListNode* res = reverseList(node1);ListNode *head = res;while(res != nullptr){std::cout<< res->val<<std::endl;res = res->next;}
}

输出:

5
4
3
2
1

方法二:递归法

递归地反转链表,对于每个节点,假设其后续节点已经被正确反转,然后调整当前节点的指向。

代码实现(C++)

struct ListNode {int val;ListNode* next;ListNode( int x ) : val( x ), next( nullptr ) {}
};
ListNode* reverseList( ListNode* head )
{// 基本情况:如果头节点为空或只有一个节点,则直接返回头节点if ( head == nullptr || head->next == nullptr ){return head;}// 递归调用,反转剩余链表ListNode* p = reverseList( head->next );// 反转当前节点与下一个节点之间的连接head->next->next = head;head->next       = nullptr;return p;  // 返回新的头节点
}int main()
{ListNode* node1 = new ListNode(1);node1->next = new ListNode(2);node1->next->next = new ListNode(3);node1->next->next->next = new ListNode(4);node1->next->next->next->next = new ListNode(5);ListNode* res = reverseList(node1);ListNode *head = res;while(res != nullptr){std::cout<< res->val<<std::endl;res = res->next;}
}

输出:

5
4
3
2
1
http://www.hkea.cn/news/436817/

相关文章:

  • 河源哪里做网站网络项目怎么推广
  • 网站闭关保护怎么做广州百度seo 网站推广
  • 可以在线做动图的网站近期重大新闻事件
  • 伊犁州建设局网站怎么做微信小程序
  • 做网站需要买主机那新媒体营销方式有几种
  • 网络推广seo公司seo排名的方法
  • 南山做网站多少钱百度资讯
  • 西安哪里有做网站的小学生收集的新闻10条
  • 做游戏网站有几个要素seo网站关键词优化报价
  • 蓬业东莞网站建设技术支持东莞做网站公司首选
  • 网站版式设计获客渠道有哪些
  • 今日军事新闻简短扬州seo优化
  • 国外好看的教育类网站模板下载东莞做网站最好的是哪家
  • 微擎与wordpress快速优化seo软件推广方法
  • 英文网站设计哪家好免费网站搭建
  • 网站建设公司 销量深圳谷歌seo公司
  • 新蔡哪有做网站建设的全球疫情今天最新消息
  • 怎么做平台网站百度seo报价方法
  • 帮人做网站 怎么收费怎么用网络推广
  • 网站排名优化建设百度广告投放技巧
  • 文件服务器网站搭建教程好的竞价托管公司
  • 黑龙江省城乡和住房建设厅网站首页百度链接地址
  • 网站模板修改工具专业seo关键词优化
  • 口碑好的句容网站建设yahoo搜索
  • 深圳网站建设外贸公司价格网络营销的背景和意义
  • 长春网站建设硕成传媒seo快速排名优化公司
  • web网站开发能使用c 吗免费建立个人网站申请
  • 织梦网站修改教程视频网站优化培训学校
  • 南沙区交通和建设局网站中国十大网络销售公司
  • 免费建设网站的方法百度网址大全 官网