为了账号安全,请及时绑定邮箱和手机立即绑定

C++双向链表实现奇数位置上的反转,具体描述如下

C++双向链表实现奇数位置上的反转,具体描述如下

C++
心有法竹 2018-11-11 13:13:58
反转一个双向链表中奇数位置上的数。如一个双向链表为1<->2<->3<->4<->5<->6,反转之后为5<->2<->3<->4<->1<->6。也就是把第一位,第三位,第五位反转问题补充:我说的那个123456只是一个例子,要一个对任意长度都适用的方法!(有没有只扫描一遍的方法,各种方法都欢迎,考虑到复杂度的更好啊!)
查看完整描述

2 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

只扫描一遍不太可能。提供一个思路

两个指针,一个指向表头,一个指向表尾,同时向中间遍历,并交换奇数位上的元素,直到两个指针相遇。


查看完整回答
反对 回复 2018-11-15
?
慕码人8056858

TA贡献1803条经验 获得超6个赞

和字符串反转类似,两个指针向内靠拢,对于小数据来说交换其 data 值即可(整个链表的所有指针不需要变动),当然也可以交换指针,线性时间复杂度:O(N)。


查看完整回答
反对 回复 2018-11-15
  • 2 回答
  • 0 关注
  • 809 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信