Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 9220f91

Browse files
committed
Update linked_list.md
删除链表中的重复元素II
1 parent 3e6a90b commit 9220f91

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

‎data_structure/linked_list.md‎

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,33 @@ ListNode* deleteDuplicates(ListNode* head) {
105105
106106
思路:链表头结点可能被删除,所以用 dummy node 辅助删除
107107
108+
**Python版本**
109+
```python
110+
# Definition for singly-linked list.
111+
# class ListNode:
112+
# def __init__(self, val=0, next=None):
113+
# self.val = val
114+
# self.next = next
115+
class Solution:
116+
def deleteDuplicates(self, head: Optional[ListNode]) -> Optional[ListNode]:
117+
if head is None: return head
118+
dummy = ListNode(val = -300, next=head)
119+
120+
cur = dummy
121+
while cur.next:
122+
node = cur.next
123+
while node is not None and cur.next.val == node.val:
124+
node = node.next
125+
if cur.next.next != node: cur.next = node # 说明经过了删除
126+
else: cur = cur.next
127+
128+
return dummy.next
129+
```
130+
- 因为原始节点可能被删除,使用辅助节点node
131+
- 辅助节点(不断往后面走)跟原始节点进行比较
132+
133+
134+
**C++版本**
108135
```cpp
109136
ListNode* deleteDuplicates(ListNode* head) {
110137
ListNode* dummy = new ListNode(-1);

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /