File tree 1 file changed +108
-0
lines changed 1 file changed +108
-0
lines changed Original file line number Diff line number Diff line change
1
+ """定義Node"""
2
+ class Node(object):
3
+ def __init__(self, val):
4
+ self.val = val
5
+ self.next = None
6
+
7
+ """定義LinkedList"""
8
+ class MyLinkedList:
9
+
10
+ """
11
+ 基本結構
12
+ """
13
+ def __init__(self):
14
+ self.head=None
15
+ self.tail=None
16
+ self.size=0
17
+
18
+
19
+ """
20
+ 取得某位置的數據
21
+ """
22
+ def get(self, index: int) -> None:
23
+ """
24
+ Get the value of the index-th node in the linked list. If the index is invalid, return -1.
25
+ """
26
+ if index<0 or index >= self.size:
27
+ return -1
28
+ if self.head is None:
29
+ return -1
30
+ a=self.head
31
+ for i in range(index):
32
+ a=a.next
33
+ return a.val
34
+
35
+
36
+
37
+ """
38
+ 開頭加Node
39
+ """
40
+ def addAtHead(self, val: int) -> None:
41
+ newHead=Node(val)
42
+ newHead.next=self.head
43
+ self.head=newHead
44
+ self.size = self.size + 1
45
+
46
+
47
+
48
+ """
49
+ 尾巴加Node
50
+ """
51
+ def addAtTail(self, val: int) -> None:
52
+ a=self.head
53
+ if a is None:
54
+ self.head=Node(val)
55
+ else:
56
+ while a.next is not None:
57
+ a=a.next
58
+ a.next=Node(val)
59
+ self.size = self.size+1
60
+
61
+
62
+
63
+
64
+ """
65
+ 中間加Node
66
+ """
67
+ def addAtIndex(self, index: int, val: int) -> None:
68
+ if index < 0 or index > self.size:
69
+ return
70
+ if index == 0:
71
+ self.addAtHead(val)
72
+ else:
73
+ a = self.head
74
+ for i in range(index - 1):
75
+ a = a.next
76
+ node = Node(val)
77
+ node.next = a.next
78
+ a.next = node
79
+
80
+ self.size += 1
81
+
82
+
83
+ """
84
+ 刪除其中Node
85
+ """
86
+ def deleteAtIndex(self, index: int) -> None:
87
+ """
88
+ Delete the index-th node in the linked list, if the index is valid.
89
+ """
90
+ if index < 0 or index >= self.size:
91
+ return
92
+
93
+ a = self.head
94
+ if index == 0:
95
+ self.head = a.next
96
+ else:
97
+ for i in range(index - 1):
98
+ a = a.next
99
+ a.next = a.next.next
100
+
101
+ self.size -= 1
102
+
103
+ def get_list(self):
104
+ '''測試用,可回傳list'''
105
+ if self.len != 0:
106
+ return [self.get(item) for item in range(self.len)]
107
+ else :
108
+ return -1
You can’t perform that action at this time.
0 commit comments