本文主要是介绍Leetcode 83. 删除排序链表中的重复元素----python,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述:
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
示例 1:
输入: 1->1->2
输出: 1->2
示例 2:
输入: 1->1->2->3->3
输出: 1->2->3
解题思路:
这道题思路很简单,就是判断上一个节点的值和下一个节点的值是否相等,若相等,则删除节点。
循环判断。
我觉得这道题主要是考链表删除操作。
代码实现:
# Definition for singly-linked list.
class ListNode(object):def __init__(self, x):self.val = xself.next = Noneclass Solution(object):def deleteDuplicates(self, head):""":type head: ListNode:rtype: ListNode"""if(head == None or head.next == None):return headroot = headwhile(root.next):nextNode = root.nextif(root.val == nextNode.val):root.next = nextNode.nextelse:root = root.nextreturn headdef printLink(self,root):r = rootwhile(r):print(r.val)r = r.nextroot = ListNode(1)
n2 = ListNode(2)
n3 = ListNode(2)
n4 = ListNode(4)
n5 = ListNode(5)root.next = n2
n2.next = n3
n3.next = n4
n4.next = n5s = Solution()
result = s.deleteDuplicates(root)
s.printLink(result)
这篇关于Leetcode 83. 删除排序链表中的重复元素----python的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!