leetcode 206 链表反转 python
2019-07-08 10:21
435 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_24146957/article/details/95044598
class Solution: def reverseList(self, head:ListNode) -> ListNode: cur, pre = head, None while cur: cur.next, pre, cur = pre, cur, cur.next return pre
需要注意的的是python的连续赋值,右侧全是中间变量
cur.next, prev, cur = prev, cur, cur.next
请注意python的连续变量赋值与下面的等式不等价
cur.next = prev
prev = cur
cur = cur.next
测试代码
class ListNode: def __init__(self, x): self.val = x self.next = None def __str__(self): return 'val:%d' % self.val class Solution: def reverseList(self, head: ListNode) -> ListNode: cur, pre = head, None while cur: cur.next, pre, cur = pre, cur, cur.next return pre if __name__ == '__main__': a = ListNode(1) b = ListNode(2) c = ListNode(3) d = ListNode(4) # 构造一个简单链表 a.next, b.next, c.next = b, c, d p = a while (p): print(p.val) p = p.next print("----------------") p = Solution().reverseList(a) while (p): print(p.val) p = p.next
运行结果
初始状态: 1 -> 2 -> 3 -> NULL cur prev 循环一次 : 1 -> NULL // cur.next = pre cur pre 1 -> NULL // pre = cur pre 2 -> 3 -> NULL // cur=cur.next=2 cur 循环第二次: 2 -> (1 -> NULL) // cur.next=pre cur pre 2 -> 1 -> NULL // pre = cur pre 3 -> NULL //cur=cur.next=3 cur// 循环第三次: 3 -> (2 -> 1 -> NULL) // cur.next = pre cur 3 -> 2 -> 1 -> NULL // pre = cur pre NULL //cur = cur.next=None cur
相关文章推荐
- 【数据结构】单链表介绍及leetcode206题反转单链表python实现
- 编程集训第2天:LeetCode--环形链表2(142)及单链表反转(206)C++和python代码实现
- 剑指面试题24-反转链表 leetcode 206
- Leetcode 206 反转链表 Java
- LeetCode206反转链表
- leetcode解题之206 # Reverse Linked List Java版 (使用头插法反转链表)
- LeetCode_206—— 反转链表
- leetcode206 反转链表
- LeetCode 206 Reverse Linked List(反转链表)(Linked List)(四步将递归改写成迭代)(*)
- scala反转链表 leetcode 206 Reverse Linked List
- LeetCode206: 反转链表
- leetcode206 Reverse Linked List(反转链表)
- leetcode 92:反转链表II python
- 链表leetcode(142)Linked List Cycle II和(206)Reverse Linked List (python)
- leetcode:[206]反转链表
- LeetCode--Reverse Linked List 反转链表(Python)
- leetcode-反转链表(python)
- leetcode-反转链表II(python)
- 【LeetCode】Python实现-206. 反转链表(三种方法)
- LeetCode 206: 反转链表 C++实现