给定一个已排序的链表head , 删除原始链表中所有重复数字的节点,返回执行删除后的链表
时间: 2023-06-10 22:03:19 浏览: 138
好的,这是一道链表删除问题,具体的解法如下:
1. 定义一个临时节点,将它连接在链表头部,作为新链表的开头,用于处理头结点被删除的情况。
2. 定义两个指针,分别指向临时节点和原始链表的头结点。
3. 遍历原始链表,如果发现当前节点和下一个节点值相同,就将指针2往后移动,直到找到不同位置为止。
4. 如果指针1的下一个节点不是指针2,就将指针1的next指针指向指针2的下一个节点。
5. 否则,就将指针1和指针2都往后移动。
最终返回临时节点的下一个节点即可。
以下是具体的代码实现:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def deleteDuplicates(head: ListNode) -> ListNode:
dummy = ListNode(0) # 定义一个临时节点,作为新链表的开头
dummy.next = head
p1 = dummy
p2 = head
while p2 and p2.next:
if p2.val == p2.next.val:
while p2 and p2.next and p2.val == p2.next.val:
p2 = p2.next
p2 = p2.next
p1.next = p2
else:
p1 = p1.next
p2 = p2.next
return dummy.next
```
希望能帮到你!
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)