题解 | 链表的奇偶重排

链表有个通病,那就是在循环的时候,它的尾巴一直在,你以为循环的时候,只是当前的节点,其实它带了一串很长的尾巴。

这个题目看起来很简单,就是在遍历的时候,判断当前的节点是奇数节点还是偶数节点,是奇数节点就接到奇数的节点上,是偶数的节点就接到偶数的节点上去,最后再把他们拼起来。

但是在循环的过程中,有一个比较容易出错的问题是,当循环结束的时候,如果最后一个节点是奇数节点的话,由于循环完了,current就为null结束了,导致偶数的处理还停留在上两次的状态,也就是它尾巴还接着最后一个奇数节点,还没轮到他处理呢,就结束了。这个时候就需要把他尾巴去掉。

因此需要单独的判断,如果尾巴是奇数节点,那么偶数的尾巴就为null。否则如果尾巴偶数节点,那么奇数节点还停留在上两步,月就是后面还跟着偶数的一个尾巴。

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务