婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > python3兩數相加的實現示例

python3兩數相加的實現示例

熱門標簽:在哪里辦理400電話號碼 平頂山外呼系統免費 400電話申請服務商選什么 工廠智能電話機器人 千陽自動外呼系統 原裝電話機器人 清遠360地圖標注方法 西藏智能外呼系統五星服務 江蘇客服外呼系統廠家

兩數相加

給你兩個 非空 的鏈表,表示兩個非負的整數。它們每位數字都是按照 逆序 的方式存儲的,并且每個節點只能存儲 一位 數字。
請你將兩個數相加,并以相同形式返回一個表示和的鏈表。
你可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。

示例 1:

輸入:l1 = [2,4,3], l2 = [5,6,4]
輸出:[7,0,8]
解釋:342 + 465 = 807.

示例 2:

輸入:l1 = [0], l2 = [0]
輸出:[0]

示例 3:

輸入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]
輸出:[8,9,9,9,0,0,0,1]

思路:

1.創建一個新鏈表,新鏈表的頭部先設置為l1頭部和l2頭部之和。
2.遍歷兩個鏈表,只要有一個還沒有遍歷完就繼續遍歷
3.每次遍歷生成一個當前節點cur的下一個節點,其值為兩鏈表對應節點的和再加上當前節點cur產生的進位
4.更新進位后的當前節點cur的值
5.循環結束后,因為首位可能產生進位,因此如果cur.val是兩位數的話,新增一個節點
6.返回頭節點

由題目注釋可以看出listNode這個類是用來創建鏈表的,默認next=None,val=0.
Definition for singly-linked list.
class ListNode:
def init(self, val=0, next=None):
self.val = val
self.next = next

# Definition for singly-linked list.
# class ListNode:
#  def __init__(self, val=0, next=None):
#   self.val = val
#   self.next = next
class Solution:
 def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
  head = ListNode(l1.val+l2.val)
  current = head
  while l1.next or l2.next:
   l1 = l1.next if l1.next else ListNode()
   l2 = l2.next if l2.next!=None else ListNode()
   current.next = ListNode(l1.val+l2.val+current.val//10)
   current.val = current.val%10
   current = current.next
  if current.val >= 10:
   current.next = ListNode(current.val//10)
   current.val = current.val%10
  return head

改進改進:增加了空間復雜度。本以為一方為None后直接把另一個鏈表連上就ok了。然后,就打臉了。


然后又加了while

> [9999]

# Definition for singly-linked list.
# class ListNode:
#  def __init__(self, val=0, next=None):
#   self.val = val
#   self.next = next
class Solution:
 def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
  head = ListNode(l1.val+l2.val)
  current = head
  while l1.next and l2.next:
   l1 = l1.next 
   l2 = l2.next 
   current.next = ListNode(l1.val+l2.val+current.val//10)
   current.val = current.val%10
   current = current.next
  if l1.next == None and l2.next :
   while l2.next:
    l2 = l2.next
    current.next= ListNode(l2.val+current.val//10)
    current.val = current.val%10
    current = current.next
    current.next = l2.next
  elif l2.next == None and l1.next:
   while l1.next:
    l1 = l1.next
    current.next= ListNode(l1.val+current.val//10)
    current.val = current.val%10
    current = current.next
    current.next = l2.next
  if current.val >= 10:
   current.next = ListNode(current.val//10)
   current.val = current.val%10
  return head

到此這篇關于python3兩數相加的實現示例的文章就介紹到這了,更多相關python3兩數相加內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python 將numpy維度不同的數組相加相乘操作
  • python中利用numpy.array()實現倆個數值列表的對應相加方法
  • python打印9宮格、25宮格等奇數格 滿足橫豎斜相加和相等
  • python 將字符串中的數字相加求和的實現
  • 對python中矩陣相加函數sum()的使用詳解

標簽:天水 股票 日照 隨州 安慶 西安 白城 錦州

巨人網絡通訊聲明:本文標題《python3兩數相加的實現示例》,本文關鍵詞  python3,兩數,相加,的,實現,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python3兩數相加的實現示例》相關的同類信息!
  • 本頁收集關于python3兩數相加的實現示例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 辉县市| 青海省| 龙川县| 鄂伦春自治旗| 秭归县| 永川市| 汤阴县| 郯城县| 诏安县| 长宁区| 麟游县| 永川市| 寿宁县| 宁波市| 高邮市| 荣成市| 屏边| 新兴县| 蕉岭县| 小金县| 沙田区| 淮滨县| 涡阳县| 湾仔区| 东城区| 梁平县| 澳门| 东乡县| 小金县| 营口市| 临安市| 衡阳市| 天水市| 泰州市| 项城市| 巨野县| 黔江区| 邓州市| 青州市| 阳江市| 筠连县|