leetcode 【 Reverse Linked List II 】 python 实现
2015-01-08 23:44
609 查看
题目:
Reverse a linked list from position m to n. Do it in-place and in one-pass.
For example:
Given
return
Note:
Given m, n satisfy the following condition:
1 ≤ m ≤ n ≤ length of list.
代码:oj测试通过 Runtime: 65 ms
思路:
不妨拿出四本书,摞成一摞(自上而下为 A B C D),要让这四本书的位置完全颠倒过来(即自上而下为 D C B A):
盯住书A,每次操作把A下面的那本书放到最上面
初始位置:自上而下为 A B C B
第一次操作后:自上而下为 B A C D
第二次操作后:自上而下为 C B A D
第三次操作后:自上而下为 D C B A
小白觉得四本书的例子,貌似可以更有助于解释代码,欢迎大侠拍砖指导。
Reverse a linked list from position m to n. Do it in-place and in one-pass.
For example:
Given
1->2->3->4->5->NULL, m = 2 and n = 4,
return
1->4->3->2->5->NULL.
Note:
Given m, n satisfy the following condition:
1 ≤ m ≤ n ≤ length of list.
代码:oj测试通过 Runtime: 65 ms
# Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: # @param head, a ListNode # @param m, an integer # @param n, an integer # @return a ListNode def reverseBetween(self, head, m, n): if head is None or head.next is None: return head dummyhead = ListNode(0) dummyhead.next = head p = dummyhead for i in range(m-1): p = p.next curr = p.next for i in range(n-m): tmp = curr.next curr.next = tmp.next tmp.next = p.next p.next = tmp return dummyhead.next
思路:
不妨拿出四本书,摞成一摞(自上而下为 A B C D),要让这四本书的位置完全颠倒过来(即自上而下为 D C B A):
盯住书A,每次操作把A下面的那本书放到最上面
初始位置:自上而下为 A B C B
第一次操作后:自上而下为 B A C D
第二次操作后:自上而下为 C B A D
第三次操作后:自上而下为 D C B A
小白觉得四本书的例子,貌似可以更有助于解释代码,欢迎大侠拍砖指导。
相关文章推荐
- LeetCode 92 Reverse Linked List II (Python详解及实现)
- [LeetCode] Reverse Linked List II @ Python [提供自创的示意图 Figure illustration]
- [leetcode]Reverse Linked List II (反转链表值 C语言实现)
- 【LeetCode with Python】 Reverse Linked List II
- 【LeetCode-面试算法经典-Java实现】【092-Reverse Linked List II(反转单链表II)】
- [Leetcode]@python 92. Reverse Linked List II
- [leetcode]Reverse Linked List II @ Python
- [LeetCode]题解(python):092-Reverse Linked List II
- [Leetcode][python]Reverse Linked List/Reverse Linked List II
- leetcode 【 Linked List Cycle II 】 python 实现
- C实现 LeetCode->Reverse Linked List II (双指针大法)(单链表反转)
- [leetcode] Reverse Linked List II
- LeetCode —— Reverse Linked List II
- leetcode--Reverse Linked List II
- leetcode -- Reverse Linked List II
- LeetCode_Reverse Linked List II
- [leetcode]Reverse Linked List II
- [Leetcode]Reverse Linked List II
- leetcode Reverse Linked List II
- leetcode 41: Reverse Linked List II