DW&LeetCode_day13(160、169、206)

DW&LeetCode_day13(160、169、206)


写在前面:

  • 这个月是跟并查集杠上了吗,这个月学不会并查集不让走!

开源内容

开源内容


目录

DW&LeetCode_day13(160、169、206)

写在前面:

开源内容

学习大纲 

 160. 相交链表

题解:

169. 多数元素

题解:

206. 反转链表

题解:


学习大纲 

 160. 相交链表

题解:

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> ListNode:
        if not headA or not headB:
            return None
    #双指针
        def length(L: ListNode) -> int:
            n = 0
            while L:
                n += 1
                L = L.next
            return n
        lenA, lenB = length(headA), length(headB)
        if lenA < lenB:
            headA, headB = headB, headA
        for _ in range(abs(lenA - lenB)):
            headA = headA.next
        while headA and headB and headA is not headB:
            headA, headB = headA.next, headB.next
        return headA

DW&LeetCode_day13(160、169、206)_第1张图片

169. 多数元素

题解:

class Solution:
    def majorityElement(self, nums: List[int]) -> int:
        # 哈希表
        dic = {}
        set1 = set(nums)
        for i in nums:
            dic[i] = dic.get(i,0) + 1
        for i in set1:
            if dic.get(i)>(len(nums)//2):
                return i

DW&LeetCode_day13(160、169、206)_第2张图片

206. 反转链表

题解:

class Solution(object):
    def reverseList(self, head):
        """
        :type head: ListNode
        :rtype: ListNode
        """
        if not head:
            return None
        headAndCur = self.reverseList1(head)
        return headAndCur[0].next
        
        
    def reverseList1(self, head):   #由于递归时,为了节省时间开支,需要传递头指针和当前节点,所以另声明一个函数
        if not head.next:
            headNode = ListNode(0)    #头节点
            curNode = ListNode(head.val)   #当前节点
            headNode.next = curNode
            return [headNode, curNode]
        tempList = self.reverseList1(head.next)  
        tempList[1].next = ListNode(head.val)
        tempList[1] = tempList[1].next
        return tempList

DW&LeetCode_day13(160、169、206)_第3张图片

 

你可能感兴趣的:(LeetCode题解,Python,leetcode)