反转链表(python)
2024-10-29 15:33:46
题目描述
输入一个链表,反转链表后,输出新链表的表头.
# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
# 返回ListNode
def ReverseList(self, pHead): #反转链表,我们的思路是将前一个节点与后一个节点断开,然后让前一个节点指向后一个节点,
#这个过程就需要节点引用(可以理解为指针)来确定记录当前操作节点的前一个节点和后一个节点
#ListNode pre=null;定义pre节点引用指向当前操作节点的前一个节点,最开始头结点的前一个节点肯定是null。
#ListNode next=null; 定义next节点引用指向当前操作节点的后一个节点,我们开始也让他指向null.
#temp=head.next;//让temp引用指向head下一个节点,
#head.next=newHead;//newHead始终指向当前head的前一个节点,这样可以反转节点了。
#newHead=head;这个时候,newHead就由当前操作节点的上一个节点变成了当前操作节点了,
#可以进行下一个当前操作节点的反转操作了
#head=temp; 这个就是下一个操作节点。
# write code here
if not pHead or not pHead.next:
return pHead
newHead = None
while pHead:
temp = pHead.next
pHead.next = newHead
newHead = pHead
pHead = temp
return newHead
最新文章
- Issue 4:分布式的基础性问题
- java归并排序,单线程vs多线程
- Spring的IoC容器注入的类型
- go中间的&;和*
- Ruby1.9.3-下载网络图片至本地,并按编号保存。
- 提权后获取linux root密码
- C#克隆实例详解
- GitHub Windows客户端部署
- atexit模块解析
- 谈谈数据库中MyISAM与InnoDB区别 针对业务类型选择合适的表
- Java基础知识二次学习--第四章 异常
- C语言博客作业--函数 陈张鑫
- 一、操作m'y's'ql
- [Linux]安装node.js
- WINDOWS7环境下Informatica的安装[新手]
- java LinkedList(链表)
- part1:1-embeded学习心态
- WPF中常用的Window事件
- Android——菜单和进度条
- Spring 多数据源 @Transactional 注解事务管理