129 - 求根到葉子節點數字之和 - Python
給定一個二叉樹,它的每個結點都存放一個 10-9
的數字,每條從根到葉子節點的路徑都代表一個數字。例如,從根到葉子節點路徑1->2->3
代表數字123
。計算從根到葉子節點生成的所有數字之和。
說明: 葉子節點是指沒有子節點的節點。
示例 1:
輸入: [1,2,3]
1
/ \
2 3
輸出: 25
解釋:
從根到葉子節點路徑 1->2 代表數字 12.
從根到葉子節點路徑 1->3 代表數字 13.
因此,數字總和 = 12 + 13 = 25.
示例 2:
輸入: [4,9,0,5,1]
4
/ \
9 0
/ \
5 1
輸出: 1026
解釋:
從根到葉子節點路徑 4->9->5 代表數字 495.
從根到葉子節點路徑 4->9->1 代表數字 491.
從根到葉子節點路徑 4->0 代表數字 40.
因此,數字總和 = 495 + 491 + 40 = 1026.
題目要求每條根節點到葉子節點的路徑所表示的數字之和,因此,我們需要從根節點深度遍歷所有可能的路徑,並記錄路徑上的節點的val
,最後統計每個路徑表示的數字之和即可。思想簡單,直接上程式碼:
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def sumNumbers(self, root: TreeNode) -> int:
if not root: return 0
r = []
def track(root, path):
if not root: return
if not root.left and not root.right: # 已經到達葉子節點
path.append(str(root.val)) # 完整的一條路徑
for i in range(len(path)): # 去除前面可能的'0'
if path[i] != '0':
r.append(eval(''.join(path[i:]))) # 使用eval()得到字串表示的int型數值,儲存到r
break
path.pop() # 彈出
return
path.append(str(root.val)) # 做選擇
track(root.left, path) # 遍歷左子樹
track(root.right, path) # 遍歷右子樹
path.pop() # 撤銷選擇
track(root, [])
return sum(r) # 求和
相關文章
- leetcode129. 求根到葉子節點數字之和LeetCode
- LeetCode-129-求根節點到葉節點數字之和LeetCode
- 【LeetCode】每日一題129:求根到葉子節點數字之和LeetCode每日一題
- 404. 左葉子之和
- MySQL:非葉子節點指標MySql指標
- LeetCode-404-左葉子之和LeetCode
- leetcode------給定一個二叉樹和一個值sum,判斷是否有從根節點到葉子節點的節點值之和等於sum 的路徑,LeetCode二叉樹
- 為什麼二叉樹中葉子節點個數等於度為2的節點個數+1二叉樹
- 404. 左葉子之和(某遞迴形式)遞迴
- mysql根據節點查詢所有葉節點MySql
- Reach a Number 到達終點數字
- kubernetes 加入子節點
- 一句話查詢出指定節點的葉子記錄
- 兩數之和,三數之和,最接近的三數之和,四數之和
- 程式碼隨想錄day15 || 110 平衡二叉樹,257 二叉樹所有路徑,404 左葉子之和,222 完全二叉樹節點個數二叉樹
- json 陣列已知父節點,求所有子節點JSON陣列
- python leetcode 之兩數之和(two sum)PythonLeetCode
- LeetCode-Python 1. 兩數之和LeetCodePython
- Leetcode力扣1 兩數之和(Python版)LeetCode力扣Python
- css 定位如何依次定位多個節點下面的子節點CSS
- 費馬點(到三角形頂點之和最小的點)
- 數字化轉型之路的三個關鍵節點
- JavaScript 監聽子節點改變JavaScript
- Python判斷字串是否為字母或者數字(浮點數)Python字串
- 資料庫——查詢樹形結構某節點的所有子節點、所有父節點資料庫
- CCF 201512-1 數位之和 python 滿分Python
- 聚勢賦能,國內數字化建設迎新節點
- 牛客練習賽129 A-數數
- 兩數之和
- 三數之和
- leetcode----給定一個二叉樹,返回該二叉樹由底層到頂層的層序遍歷,(從左向右,從葉子節點到根節點,一層一層的遍歷)LeetCode二叉樹
- React計算antd的TreeSelect元件所選中的子節點數量React元件
- 用python手刃Leetcode(1):兩數之和【簡單題】PythonLeetCode
- day 15|二叉樹part03|110.平衡二叉樹|257. 二叉樹的所有路徑|404.左葉子之和| 222.完全二叉樹的節點個數二叉樹
- 企業數字化轉型的關鍵節點是什麼?
- vxe-table 樹表格拖拽排序,支援拖拽到空節點,直接拖拽成子級排序
- Python Number(數字)Python
- dom4j 根據xml節點路徑查詢節點,找到對應的目標節點下的子節點,對節點Text值進行修改XML