链表反转
来源:互联网 发布:win7 vb 对象库未注册 编辑:程序博客网 时间:2024/05/16 15:20
链表反转是面试常考问题,这里做个总结:
原链表头:pHead
新链表头:p_next
附代码:
def ReverseList(pHead): p_next = None while(pHead is not None): p = pHead pHead = pHead.next p.next = p_next p_next = p return p_next
每轮循环开始,pHead拷贝给p,p再连接上p_next。单次循环结束前,再将p_next = p,从而更新p_next,为下一次循环做准备。
有人可能会觉得奇怪,既然循环结束前都有 p_next = p,那么为什么不能 return p?
原因是,如果输入的pHead链表为空,则无法进入循环,考虑到鲁棒性,应当返回 p_next。
0 0
- 链表反转
- 反转链表
- 单向链表反转
- 链表反转:
- 链表的反转
- 链表反转
- 反转单向链表
- 链表反转
- 单向链表反转
- 单向链表反转
- 链表的反转
- 链表反转
- 反转链表
- 链表反转
- 链表反转
- 链表反转
- 链表反转
- 链表的反转
- Java环境下调Js方法
- android录音播放问题
- 关于vector的erase删除操作的两种不同方法,在linux与visual studio的实现讨论
- MyEclipse/Eclipse导入项目报错的终极解决办法
- Android Studio运行慢优化
- 链表反转
- 4.4以上的沉浸模式
- Android监听Log,悬浮显示
- csdn代码块如何是实现?
- 对React Native初步学习
- Android中的Dalvik和ART有啥区别?
- Cmake 生成vs工程报错。
- [ZJOI2015] 地震后的幻想乡
- 代码合并的两种方式详解