leetcode 257 二叉樹的所有路徑

2021-10-24 07:41:06 字數 1476 閱讀 3176

目錄

一、題目內容

二、解題思路

三、**

給定乙個二叉樹,返回所有從根節點到葉子節點的路徑。

說明: 葉子節點是指沒有子節點的節點。

示例:

輸入:

1

/   \

2     3

\5

輸出: ["1->2->5", "1->3"]

解釋: 所有根節點到葉子節點的路徑為: 1->2->5, 1->3

回溯+dfs,簡單易懂

# definition for a binary tree node.

class treenode:

def __init__(self, x):

self.val = x

self.left = none

self.right = none

class solution:

def binarytreepaths(self, root: treenode):

paths =

if root is none:

return

def dfs(root, path):

if root.left is none and root.right is none:

return

if root.left is not none:

org_path = path

path += "->" + str(root.left.val)

dfs(root.left, path)

path = org_path

if root.right is not none:

org_path = path

path += "->" + str(root.right.val)

dfs(root.right, path)

path = org_path

dfs(root, str(root.val))

return paths

if __name__ == '__main__':

root = treenode(1)

root.left = treenode(2)

root.right = treenode(3)

root.left.left = treenode(5)

s = solution()

ans = s.binarytreepaths(root=root)

print(ans)

LeetCode257 二叉樹的所有路徑

好多天沒寫演算法了,好多天也不更了。今天開始繼續啊,加油!先來乙個簡單的二叉樹練練手哈 給定乙個二叉樹,返回從根節點到葉節點的所有路徑。例如,給定以下二叉樹 1 2 3 5所有根到葉路徑是 1 2 5 1 3 二叉樹先序遍歷一下,遞迴把節點值挨個加入就好了 definition for a bina...

leetcode 257 二叉樹的所有路徑

給定乙個二叉樹,返回所有從根節點到葉子節點的路徑。說明 葉子節點是指沒有子節點的節點。示例 輸入 1 2 3 5 輸出 1 2 5 1 3 解釋 所有根節點到葉子節點的路徑為 1 2 5,1 3 definition for a binary tree node.struct treenode cl...

Leetcode 257 二叉樹的所有路徑

給定乙個二叉樹,返回所有從根節點到葉子節點的路徑。說明 葉子節點是指沒有子節點的節點。示例 輸入 1 2 3 5 輸出 1 2 5 1 3 解釋 所有根節點到葉子節點的路徑為 1 2 5,1 3首先要寫一下我自己的錯誤的思路 利用回溯,到了葉子結點後將當前遍歷到的一位陣列加入到要返回的二維陣列中,當...