Reverse LinkedList I
字节,研发
Links:
牛客:
1. 题目描述
输入一个链表,反转链表后,输出新链表的表头。示例1
输入
复制
{1,2,3}
返回值
复制
{3,2,1}
2.思路
输入: linkedlist head, 输出: reversed linkedlist head
idea:
既然是要反转链表的顺序,那么就要遍历每个node并把每个node的next指向prev
所以需要prev, cur, next 三个pointer
把cur.next 保存, 把cur的next 指向prev进行reverse
prev 移向cur, cur 移向保存的next进行遍历
直到cur =none不用返回,就prev 就是new head,返回prev就可以了
Time :O(n) Space O(n)
# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
# 返回ListNode
def ReverseList(self, pHead):
# write code here
if not pHead:
return pHead
prev = None
cur = pHead
while cur:
next_node = cur.next
cur.next = prev
prev = cur
cur = next_node
return prev
Last updated
Was this helpful?