[Leetcode][python]Reorder List
2017-12-16 07:29
435 查看
题目大意
将单向链表L0→L1→…→Ln-1→Ln转化为
L0→Ln→L1→Ln-1→L2→Ln-2→…的形式,也就是从头部取一个节点,从尾部取一个节点,直到将原链表转化成新的链表。
解题思路
去中间节点,将链表分为两段.翻转后一段
拼接
代码
class Solution: def reorderList(self, head): """ :type head: ListNode :rtype: void Do not return anything, modify head in-place instead. """ if not head: return # split {1,2,3,4,5} to {1,2,3}{4,5} fast = slow = head while fast and fast.next: slow = slow.next fast = fast.next.next head1 = head head2 = slow.next slow.next = None # reverse the second {4,5} to {5,4} cur, pre = head2, None while cur: nex = cur.next cur.next = pre pre = cur cur = nex # merge cur1, cur2 = head1, pre while cur2: nex1, nex2 = cur1.next, cur2.next cur1.next = cur2 cur2.next = nex1 cur1, cur2 = nex1, nex2
总结
相关文章推荐
- leetcode 【 Reorder List 】python 实现
- [LeetCode]题解(python):143-Reorder List
- [leetcode]Reorder List @ Python
- 【LEETCODE】143- Reorder List [Python]
- 【LeetCode with Python】 Reorder List
- 【leetcode】Reorder List (python)
- 【leetcode】Reorder List (python)
- leetcode - Reorder List
- 【Leetcode】Reorder List
- 【leetcode】Reorder List
- Reorder List leetcode
- LeetCode::Reorder List
- 【Leetcode】【Medium】Reorder List
- Leetcode-Reorder List
- LeetCode---Reorder List
- leetcode - Reorder List
- LeetCode: Reorder List
- leetcode 日经贴,Cpp code -Reorder List
- LeetCode-Reorder List
- 【LeetCode】-Reorder List