面试100题 题4

系统 1735 0
题目:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。

例如输入整数22和如下二元树

10
/ \
5 12
/ \
 4 7

则打印出两条路径:10, 12和10, 5, 7

先弄清楚是什么遍历:这里给出的路径可以看出来,是先序遍历
Java代码 复制代码 收藏代码
  1. class Node{
  2. public int val;
  3. public Nodeleft;
  4. public Noderight;
  5. }
  6. public FindRoad(Nodenode, int num, int sum,Liststack){
  7. sum+=node.val;
  8. stack.add(node.val);
  9. if (node.left== null &&node.right== null &&sum==num){
  10. 打印
  11. }
  12. if (node.left!= null ){
  13. FindRoad(node.left,num,sum,stack);
  14. }
  15. if (node.right!= null ){
  16. FindRoad(node.right,num,sum,stack);
  17. }
  18. sum-=stack.remove(stack.size()- 1 );
  19. }

面试100题 题4


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论