題目描述:
給定一個二叉樹,返回所有從根節點到葉子節點的路徑。
說明: ?葉子節點是指沒有子節點的節點。
示例:
輸入:
1
/ \
2 3
\
5
輸出: ["1->2->5", "1->3"]
解釋: 所有根節點到葉子節點的路徑為: 1->2->5, 1->3
Solution:
運用遞歸的思想,從根節點遍歷二叉樹,如果當前節點不是葉子節點,則將當前節點添加到路徑最后并繼續遞歸他的孩子節點。如果當前節點是葉子節點,那么將當前節點添加到路徑最后,得到一條路徑,并把當前這條路徑添加到路徑集合里。
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
def binaryTreePaths(self, root):
"""
:type root: TreeNode
:rtype: List[str]
"""
paths = []
def deep(root,path):
if not root:return
path = path + [str(root.val)]
if not root.left and not root.right:
return paths.append("->".join(path))
deep(root.left,path)
deep(root.right,path)
deep(root,[])
return paths
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
