[leetcode] 92. Reverse Linked List II

网友投稿 238 2022-11-29

[leetcode] 92. Reverse Linked List II

Description

Reverse a linked list from position m to n. Do it in one-pass.

Note: 1 ≤ m ≤ n ≤ length of list.

Example:

Input: 1->2->3->4->5->NULL, m = 2, n = 4Output: 1->4->3->2->5->NULL

分析

题目的意思是:链表内指定区间反转,需要用到两个指针:

pre指针为第m个节点的前一个节点,p指针为第m个节点然后就开始反转从第m个节点开始的n-m个节点反转完了之后返回head就行了

代码

# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution: def reverseBetween(self, head: ListNode, m: int, n: int) -> ListNode: pre=ListNode(None) p=head pre.next=p for i in range(m-1): pre=pre.next p=p.next for i in range(n-m): t=p.next p.next=t.next t.next=pre.next pre.next=t if(m==1): return pre.next return head

参考文献

​​[LeetCode] Distribute Candies 分糖果​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:centos7 anaconda3下载慢的问题
下一篇:springboot控制层传递参数为非必填值的操作
相关文章

 发表评论

暂时没有评论,来抢沙发吧~