題目:輸入一個整數和一棵二元樹。從樹的根結點開始往下訪問一直到葉結點所經過的所有結點形成一條路徑。打印出和與輸入整數相等的所有路徑。
例如輸入整數22和如下二元樹
10
/ \
5 12
/ \
4 7
則打印出兩條路徑:10, 12和10, 5, 7
先弄清楚是什么遍歷:這里給出的路徑可以看出來,是先序遍歷
例如輸入整數22和如下二元樹
10
/ \
5 12
/ \
4 7
則打印出兩條路徑:10, 12和10, 5, 7
先弄清楚是什么遍歷:這里給出的路徑可以看出來,是先序遍歷
- class Node{
- public int val;
- public Nodeleft;
- public Noderight;
- }
- public FindRoad(Nodenode, int num, int sum,Liststack){
- sum+=node.val;
- stack.add(node.val);
- if (node.left== null &&node.right== null &&sum==num){
- 打印
- }
- if (node.left!= null ){
- FindRoad(node.left,num,sum,stack);
- }
- if (node.right!= null ){
- FindRoad(node.right,num,sum,stack);
- }
- sum-=stack.remove(stack.size()- 1 );
- }
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

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