本文介绍: 假设我们正在开发一款小游戏,在游戏中存在这样一种场景,当队伍排名最后一名玩家在捡到某种道具后,可以使用该道具对他所在的队伍进行一个反转,比如1-2-3-4-5分别是五名玩家,反转后变成5-4-3-2-1,请问如何在链表的场景下进行反转?的解决办法,递归算法的核心逻辑在于先递归遍历出最后一个链表节点,然后以相反的方向将前一个元素赋值给后一个元素的next,递归结束刚好完成从后向前的递归反转,具体代码如下。关于这个问题有多种解法,我们在这里介绍两种解法。首先我们准备好基本的链表代码,如下。
假设我们正在开发一款小游戏,在游戏中存在这样一种场景,当队伍排名最后一名玩家在捡到某种道具后,可以使用该道具对他所在的队伍进行一个反转,比如1-2-3-4-5分别是五名玩家,反转后变成5-4-3-2-1,请问如何在链表的场景下进行反转?
关于这个问题有多种解法,我们在这里介绍两种解法。一是递归解法,二是进出栈解法。
现在我们开始进行递归算法的解决办法,递归算法的核心逻辑在于先递归遍历出最后一个链表节点,然后以相反的方向将前一个元素赋值给后一个元素的next,递归结束刚好完成从后向前的递归反转,具体代码如下。
当然我们也可以采取另一种方式来反转链表,该方法非常简单,甚至可以在此基础上做更多的改造,这个方法的核心逻辑就是用一个容器来辅助反转。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。