二叉樹的路徑:從根結點到葉子結點
思路:初始化2個列表,乙個儲存到達本節點之前的節點,另乙個儲存所有的路徑
# 構造一棵樹
class node(object):
"""節點
"""def __init__(self, left, right, data):
self.data = data
self.left = left
self.right = right
class tree(object):
def add_root(self, node):
self.root = node
def add_left_tree(self, node, n_node):
node.left = n_node
def add_right_tree(self, node, n_node):
node.right = n_node
tree = tree()
node = node(none, none, 15)
tree.add_root(node)
node_8_22 = node(none, none, 22)
node_8_23 = node(none, none, 23)
node_10_18 = node(none, none, 18)
node_40_9 = node(none, none, 9)
node_40_12 = node(none, none, 12)
node_1 = node(node_8_22, node_8_23, 8)
node_2 = node(none, node_10_18, 10)
node_3 = node(none, none, 20)
node_4 = node(node_40_9, node_40_12, 40)
node_5 = node(none, none, 6)
tree.add_left_tree(tree.root, node_3)
tree.add_left_tree(tree.root.left, node_1)
tree.add_right_tree(tree.root.left, node_2)
tree.add_right_tree(tree.root, node_5)
tree.add_right_tree(tree.root.right, node_4)
def get_all_path(node, before_nodes, paths):
"""獲取路徑「」「
new_str = copy.deepcopy(before_nodes)
if node.left is none and node.right is none:
return paths
if node.left:
get_all_path(node.left, before_nodes, paths)
if node.right:
get_all_path(node.right, new_str, paths)
return paths
def binary_tree_path():
before_nodes =
paths =
get_all_path(tree.root, before_nodes, paths)
return paths
if __name__ == "__main__":
paths = binary_tree_path()
print("paths: ", paths)
二叉樹的所有路徑
一 問題描述 給一棵二叉樹,找出從根節點到葉子節點的所有路徑。樣例 給出下面這棵二叉樹 1 2 3 5 所有根到葉子的路徑為 1 2 5 1 3 二 解題思路 運用遞迴的思想查詢二叉樹的所有路徑,定義乙個向量用來儲存路徑,然後運用前序遍歷二叉樹,返回查詢的的路徑,在庫檔案string中,to str...
二叉樹的所有路徑
描述 給一棵二叉樹,找出從根節點到葉子節點的所有路徑。樣例 給出下面這棵二叉樹 1 2 3 5 所有根到葉子的路徑為 1 2 5 1 3 解題思路 要找到二叉樹的所有路徑,就相當於從根節點出發一直到葉子節點。我們可以在遍歷的基礎之上完成這項操作,但是又有所不同。首先從根節點出發,先遍歷它的左子樹,直...
二叉樹的所有路徑
問題描述 給一棵二叉樹,找出從根節點到葉子節點的所有路徑。樣例 給出下面這棵二叉樹 1 2 3 5所有根到葉子的路徑為 1 2 5 1 3 解題思路 若二叉樹不為空,將節點新增到向量中,左右子樹進行遞迴,通過函式呼叫然後輸出。definition of treenode class treenode...