第四題(在二元樹中找出和為某一值的所有路徑)

2021-06-22 17:46:36 字數 637 閱讀 9986

4.在二元樹中找出和為某一值的所有路徑

題目:輸入乙個整數和一棵二元樹。

從樹的根結點開始往下訪問一直到葉結點所經過的所有結點形成一條路徑。

列印出和與輸入整數相等的所有路徑。

例如輸入整數22 和如下二元樹

10/ \

5 12

/ \4 7

則列印出兩條路徑:10, 12 和10, 5, 7。

二元樹節點的資料結構定義為:

struct binarytreenode // a node in the binary tree;

思路:在當前節點是葉節點的情況下判斷sum是否為當前節點值,如果是的話直接列印,否則路徑匹配失敗。

在當前節點不是葉節點的情況下,將當前節點新增到路徑陣列中,從sum中減去當前節點的值,同時傳遞sum值,路徑陣列和當前路徑長度到非空的左右子樹,遞迴實現上述步驟。

**:

namespace ms100p_2

; void printarray(int data, int datalen)

void findpath(binarytreenode *root,int sum,int path,int pathlen)

}else

}}}

面試題 在二元樹中找出和為某一值的所有路徑

問題 輸入乙個整數和一棵二元樹。從樹的根結點開始往下訪問一直到葉結點所經過的所有結點形成一條路徑。列印出和與輸入整數相等的所有路徑。例如輸入整數 22 如下圖二元樹 10 5 12 4 7 則列印出兩條路徑 10,12和10,5,7。二元樹節點的資料結構定義為 struct binarytreeno...

二元樹中找出和為某一值的所有路徑

在二元樹中找出和為某一值的所有路徑 題目 輸入乙個整數和一棵二元樹。從樹的根結點開始往下訪問一直到葉結點所經過的所有結點形成一條路徑。列印出和與輸入整數相等的所有路徑。例如輸入整數22 和如下二元樹 10 5 12 4 7 則列印出兩條路徑 10,12 和10,5,7。include include...

在二元樹中找出和為某一值的所有路徑

4.在二元樹中找出和為某一值的所有路徑 題目 輸入乙個整數和一棵二元樹。從樹的根結點開始往下訪問一直到葉結點所經過的所有結點形成一條路徑。列印出和與輸入整數相等的所有路徑。例如 輸入整數22和如下二元樹 10 5 12 4 7則列印出兩條路徑 10,12和10,5,7。c codes as belo...