最深路径的总和

Path Sum
give a sum = 22 ,result = 5+4+11+7 = 22 return true;

          5
         / \
        4   8
       /   / \
      11  13  4
     /  \      \
    7    2      1

此题关键处位于递归中的返回true和false,其中这种用||来返回的是我在之前的一道题中获得的灵感。

    public boolean hasPathSum(TreeNode root, int sum) {
        if (root == null) return false;
        return traveel(root, sum, 0);
    }

    public boolean traveel(TreeNode node, int sum, int num){
        //判断结果
        if (node == null) return false;
        num += node.val;
        if (node.left == null && node.right == null){
            if (num == sum) return true;
            else return false;
        }else{
            return traveel(node.left, sum, num) || traveel(node.right, sum, num);
        }
    }