Leetcode原题:reorder list 链表重新排序
L0 → L1 → … → Ln - 1 → Ln
Reorder the list to be on the following form:
L0 → Ln → L1 → Ln - 1 → L2 → Ln - 2 → …
You may not modify the values in the list’s nodes. Only nodes themselves may be changed.
head = [1,2,3,4]
Output: [1,4,2,3]
思路复原:
1,我用上述的简单例子,在草稿纸上进行答案的推导
2,在Pycharm上测试是否能输出结果,接着debug查看为什么总是数组越界,发现没有给Output这个临时数组赋予初始长度。
3,下标为偶数值,则在开头取数,奇数值则在末尾取数。
"""通过数组的解法"""
head = [0]
n = len(head)
Output = [ 0 for x in range(0,n)]
for i in range(0,n):
if i % 2 == 0:
Output[i] = head[i // 2]
else:
Output[i] = head[n-1 - (i//2)]
print(Output)
总结要点:
1、面试模拟,计时考试。
2、15min没有思路,查看题解。
3、自己正朝着吃透一题,即超过100%的用户努力。