LeetCode: 012- Reverse Linked List
来源:互联网 发布:vue双向数据绑定面试 编辑:程序博客网 时间:2024/06/04 20:04
Reverse Linked List
最基本的链表操作,
学习后插法和前插法
额外的链接
学习手写lstm
http://iamtrask.github.io/2015/11/15/anyone-can-code-lstm/
我的解法
# Definition for singly-linked list.# class ListNode(object):# def __init__(self, x):# self.val = x# self.next = Noneclass Solution(object): def reverseList(self, head): """ #后插法 :type head: ListNode :rtype: ListNode if head == None: return head new_head = head while new_head != None and new_head.next != None: new_head = new_head.next cur_new, cur_old = new_head.next, head while 1: cur_tmp = cur_old if cur_old == new_head or cur_old == None: break cur_old = cur_old.next cur_tmp.next = cur_new new_head.next = cur_tmp cur_new = cur_tmp return new_head """ #前插法 if head == None: return None cur_next, cur_now, tail= head.next, head, head while cur_next != None: cur_tmp = cur_next cur_next = cur_next.next cur_tmp.next = cur_now cur_now = cur_tmp tail.next = None return cur_now
确实是最基本的操作, 为了写清晰,速度确实慢了。
后插法:8%
前插法:33%
后插法:将末尾节点移至表头,将原链表的节点按顺序插入到新链表表头后
前插法:按顺序依次扭转每一个节点的方向
好像还有其它快速方法。。
0 0
- LeetCode: 012- Reverse Linked List
- [LeetCode]Reverse Linked List
- [Leetcode] Reverse Linked List
- leetcode Reverse Linked List
- [LeetCode] Reverse Linked List
- [LeetCode]Reverse Linked List
- Leetcode---Reverse Linked List
- [leetcode] Reverse Linked List
- [leetcode]Reverse Linked List
- Leetcode Reverse Linked List
- [leetcode] Reverse Linked List
- leetcode Reverse Linked List
- Reverse Linked List[LeetCode]
- leetcode--Reverse Linked List
- LeetCode Reverse Linked List
- leetcode: Reverse Linked List
- [leetcode] Reverse Linked List
- LeetCode - Reverse Linked List
- 13Java语法回顾之filewriter&&filereader
- inline函数与普通函数的区别
- Web服务启动时自动加载Servlet
- Unity中消息事件的封装与运用
- 5种类型的程序员
- LeetCode: 012- Reverse Linked List
- 回归csdn
- hdu3998 最长上升子序列及其个数 dp或dp+最大流
- Sicily 1129. ISBN
- [原]unity3d之http多线程异步资源下载
- 程序员要如何学英语?
- android shape使用
- 字符转码开源库libiconv目前还不支持64位
- C语言:关于字符串的编程题