文章

每日LeetCode 30-32

2021.3.17 ・ 共 411 字,您可能需要 1 分钟阅读

Tags: LeetCode

给定一个二叉树,找出其最小深度。

最小深度是从根节点到最近叶子节点的最短路径上的节点数量。

**说明:**叶子节点是指没有子节点的节点。

class Solution {
    public int minDepth(TreeNode root) {
        if (root == null) 
            return 0;
        if (root.left == null && root.right == null)
            return 1;
        else if (root.left == null)
            return minDepth(root.right) + 1;
        else if(root.right == null)
            return minDepth(root.left) + 1;
        return Math.min(minDepth(root.left), minDepth(root.right)) + 1;
    }
}

给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum

叶子节点 是指没有子节点的节点。

class Solution {
    public boolean hasPathSum(TreeNode root, int targetSum) {
        if (root == null)
            return false;
        if (root.left == null && root.right == null)
            return root.val == targetSum;
        return hasPathSum(root.left, targetSum - root.val) || hasPathSum(root.right, targetSum - root.val);
    }
}

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

说明:

你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?

示例 1:

输入: [2,2,1]
输出: 1
class Solution {
    public int singleNumber(int[] nums) {
        int ans = nums[0];
        for(int i = 1 ;i < nums.length; i++)
        {
            ans ^= nums[i];
        }

        return ans;
    }
}

相同的两个数异或为 0,任何数和 0 异或都为那个数

明天后天都有数学考试,我还在这里飘😫😪🤐😔😓😕🙃😛🤑😢😭