剑指Offer 15. 反转链表 (链表)
2024-10-10 13:07:59
题目描述
输入一个链表,反转链表后,输出新链表的表头。
题目地址
思路
pHead始终指向要翻转的结点
last指向翻转后的首结点
每反转一个节点,把pHead的下一个节点指向last,last指向pHead成为反转后的首结点,在把pHead向前移动一个结点直至None结束
Python
# -*- coding:utf-8 -*-
class ListNode:
def __init__(self, x):
self.val = x
self.next = None # 单向链表链表 node1: 1->2->3
node1 = ListNode(1)
node2 = ListNode(2)
node3 = ListNode(3)
node4 = ListNode(4)
node5 = ListNode(5)
node1.next = node2
node2.next = node3
node3.next = node4
node4.next = node5 class Solution:
# 返回ListNode
def ReverseList(self, pHead):
# write code here
if not pHead or not pHead.next:
return pHead
last = None
while pHead:
temp = pHead.next
pHead.next = last
last = pHead
pHead = temp
return last if __name__ == '__main__':
origin = node1
print('反转前:', end = ' ')
while origin:
print(origin.val, end = ' ')
origin = origin.next
result = Solution().ReverseList(node1)
print('\n反转后:', end = ' ')
while result:
print(result.val, end = ' ')
result = result.next
最新文章
- Google C++单元测试框架---Gtest框架简介(译文)
- Practical JAVA (四)异常处理
- partition-list
- sublime3中文乱码解决包ConvertToUTF8.zip
- 分布式HBase-0.98.4环境搭建
- JSP页面元素
- 【LeetCode OJ】Word Break II
- [ActionScript] AS3利用SWFObject与JS通信
- iOS开发——语法OC篇&;Block回顾
- QQ弹窗代码
- crf 分词(待)
- 屏幕录像专家V7.5(完美破解版,无水印)下载
- HDU 3551 Hard Problem
- c++ 05
- C based
- xsqlbuilder使用说明
- QNX驱动开发——中断处理(转载)
- pyqt样式表语法笔记(上) --原创
- 201521123081《Java程序设计》 第1周学习总结
- [再寄小读者之数学篇](2014-06-26 Logarithmical Sobolev inequality using BMO space)