leetcode 445 & 203
具体思路代码中有注释

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

class Solution:
    def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
        '''计算l1对应的整数。如1->2->3对应整数123'''
        l1_sum = 0
        while l1:
            l1_sum = l1_sum * 10 + l1.val
            l1 = l1.next
        
        '''计算l2对应的整数'''
        l2_sum = 0
        while l2:
            l2_sum = l2_sum * 10 + l2.val
            l2 = l2.next
        
        '''计算l1 与 l2 对应整数的和'''
        my_sum = l1_sum + l2_sum
        
        '''将my_sum表示成链表'''
        dummy = ListNode(-1)
        cur = dummy
        for i in str(my_sum):
            cur.next = ListNode(i)
            cur = cur.next
        return dummy.next

leetcode 445 & 203
思路:创建一个虚拟结点,cur表示当前指针,pre表示前一个指针。如果cur.val == val,那么pre的next指向cur的下一个结点,同时cur向前移动一位,pre不变;如果cur.val != val,那么cur和pre都向前挪一位。

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

class Solution:
    def removeElements(self, head: ListNode, val: int) -> ListNode:
        dummy = ListNode(-1)
        dummy.next = head
        cur = head
        pre = dummy
        while cur:
            if cur.val == val:
                pre.next = cur.next
                cur = cur.next
            else:
                cur = cur.next
                pre = pre.next
        return dummy.next

相关文章:

  • 2021-10-26
  • 2021-06-11
  • 2022-01-31
  • 2021-09-01
  • 2021-12-23
  • 2022-01-04
猜你喜欢
  • 2021-12-27
  • 2021-06-15
  • 2021-06-12
  • 2022-02-19
  • 2021-07-02
  • 2021-11-20
  • 2021-07-21
相关资源
相似解决方案