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

2021-06-18 15:19:31 字數 1114 閱讀 3542

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

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

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

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

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

10  

/ \   

5  12   

/   \   

4     7

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

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

struct binarytreenode // a node in the binary tree

;1、建立二叉樹

2、前序遍歷二叉樹,如果根節點小於value加入vec

3、遍歷左右孩子,value要減去當前根節點

4、如果某個節點左右孩子不符合條件,把該節點pop掉。

#include#includeusing namespace std;

typedef struct binarytreenode // a node in the binary tree

binarytree;

//int sum = 0; //路徑和

void addbinarytreenode( binarytree** root, int value )

else

else

}}void getpath( binarytree* root, int value )

if( value == root->m_nvalue )

cout << endl;

} getpath( root->m_pleft, value - root->m_nvalue );//遍歷左孩子

getpath( root->m_pright, value - root->m_nvalue );//遍歷右孩子

vec.pop_back();

}int main()

; binarytree* root = null;

for(int i = 0; i < 5; ++i)

getpath( root, 26 );

return 0;

}

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

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

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

題目 輸入乙個整數和一棵二元樹。從樹的根結點開始往下訪問一直到葉結點所經過的所有結點形成一條路徑。列印出和與輸入整數相等的所有路徑。例如 輸入整數22和如下二元樹 10 5 12 4 7 則列印出兩條路徑 10,12和10,5,7。此方法用了雙向鍊錶來儲存路徑,當然也可以用容器vector來構造佇列...

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

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