Leetcode (力扣)做题记录 hot100(42,104,226,101)

发布于:2025-05-13 ⋅ 阅读:(83) ⋅ 点赞:(0)
力扣第42题:接雨水

42. 接雨水 - 力扣(LeetCode)

左边遍历一次记录左侧最大值 右边同理,最后遍历一次 左侧右侧最小值减去当前值即可。

class Solution {
    public int trap(int[] height) {
        int n = height.length;
        int[] leftMax = new int[n];
        int[] rightMax = new int[n];
        int sum = 0;
        leftMax[0] = height[0];
        for(int i = 1;i<n;i++ ){
            leftMax[i] = Math.max(leftMax[i - 1],height[i]);
        }
        rightMax[n -  1] = height[ n -1];
        for(int i = n -2;i>=0;i--){
            rightMax[i] = Math.max(rightMax[i+1],height[i]);
        }
        for(int i =0;i<n;i++){
            sum =sum + Math.min(leftMax[i],rightMax[i]) - height[i];
        }
        return sum;
    }
}
力扣第104题:二叉树的最大深度

104. 二叉树的最大深度 - 力扣(LeetCode)

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public int maxDepth(TreeNode root) {
        if(root == null){
            return 0;
        }
        else{
        int k = maxDepth(root.left);
        int l = maxDepth(root.right);
        return Math.max(l,k) +1;}
    }
}

力扣第226题:翻转二叉树

226. 翻转二叉树 - 力扣(LeetCode)

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public TreeNode invertTree(TreeNode root) {
        if(root == null){
            return null;
        }
        TreeNode left = invertTree(root.left);
        TreeNode right = invertTree(root.right);
        root.left = right;
        root.right = left;
        return root
    }
}

力扣第101题:对称二叉树

101. 对称二叉树 - 力扣(LeetCode)

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public boolean isSymmetric(TreeNode root) {
       return cheek(root.left,root.right);
    }
    private boolean cheek(TreeNode l,TreeNode r){
        if(l == null&& r == null){
            return true;
        }
         if(l == null|| r == null){
            return false;
        }
       return l.val==r.val && cheek(l.left,r.right) && cheek(l.right,r.left);
    }
}


 本文相关图片资源来自于网络中,如有侵权请联系删除!


网站公告

今日签到

点亮在社区的每一天
去签到