美文网首页
面试题34:二叉树中和为某一值的路径

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

作者: 灰化肥发黑会挥发 | 来源:发表于2019-01-08 08:00 被阅读0次

题目:输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。

  • 思路:通过前序遍历树
  1. 如果当前节点不是叶节点,sum加上当前的值,继续遍历
  2. 如果当前节点是叶节点,sum加上当前的值,并判断是不是等于和,如果是,则输出,然后回到父节点。
import java.util.Stack;

public class FindSum {
    public void FindPathMain(TreeNode root,int expectedSum){
        if(root==null||expectedSum<=0) return;
        Stack<TreeNode> stack = new Stack<>();
        FindPath(root,expectedSum,stack,0);
    }
    public void FindPath(TreeNode root, int expectedSum, Stack stack,int currentSum){
        currentSum += root.val;
        stack.push(root);
        if(root.left==null&&root.right==null&& currentSum== expectedSum){
            System.out.println();
        }
        if(root.left!=null) FindPath(root.left,expectedSum,stack,currentSum);
        if(root.right!=null) FindPath(root.right,expectedSum,stack,currentSum);
        stack.pop();
    }
}

相关文章

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/ylgmrqtx.html