面试题34:二叉树中和为某一值的路径

题目:输入一颗二叉树和一个整数,打印出二叉树中节点值的和为输入的整数的所有路径。从树的根节点往下一直到叶节点所经过的节点形成一条路径。


public void findPath(BinaryTree head, int sum, ArrayList lst) {

    if (head ==null)return;

        lst.add(head);

    if (head.mLeft ==null && head.mRight ==null) {

        int temp =0;

        for (int i =0;i < lst.size();i++)temp += lst.get(i).value;

        if (temp == sum) {

        for (int i =0;i < lst.size();i++) {

        if (i < lst.size() -1)System.out.print(lst.get(i).value +"->");

                else System.out.print(lst.get(i).value +"");

            }

        System.out.println();

        }

}

if (head.mLeft !=null)findPath(head.mLeft,sum,lst);

    if (head.mRight !=null)findPath(head.mRight,sum,lst);

    lst.remove(head);

}

class BinaryTree{

    int value;

    BinaryTree mLeft;

    BinaryTree mRight;

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容