终于考完试了,又可以每天开心地敲代码了。
利用暑假时间,准备用Python把 LeetCode 刷一遍。今天做一道简单链表题的时候,突然发现用Python无法直接操作链表,在网上找了一下,发现可以自己定义实现,所以就打个笔记。
1.定义链表
1 | # Definition for singly-linked list. |
2.对链表的操作
1 | class ListNode_handle: |
如 要将1,8,3按照1–>8–>3的顺序使用ListNode_1操作放入链表ListNode()中,可以进行如下操作1
2
3
4
5ListNode_1 = ListNode_handle()
l1 = ListNode()
l1_list = [1,8,3]
for i in l1_list:
l1 = ListNode_1.add(i)
反向排列列表1
l1 = ListNode_1.reverse(l1)
打印链表1
ListNode_1.print_ListNode(l1)
如这个算法题
给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。 你可以假设除了数字 0 之外,这两个数字都不会以零开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807
1 | # Definition for singly-linked list. |