Leetcode (力扣)做题记录 hot100(543,102,35,101)

发布于:2025-05-11 ⋅ 阅读:(18) ⋅ 点赞:(0)
力扣第543题:二叉树的直径

543. 二叉树的直径 - 力扣(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 {
    private int ans;
    public int diameterOfBinaryTree(TreeNode root) {
        ans = 0;
        dfs(root);
        return ans;
    }
    private int dfs(TreeNode root){
            if(root == null){
                return 0;
            }
            int l = dfs(root.left);
            int r = dfs(root.right);
            ans =  Math.max(ans,l + r);//计算最大路径
            return Math.max(l ,r) +1 ;//比较左和右谁大
    }
}
力扣第102题:二叉树的层序遍历

102. 二叉树的层序遍历 - 力扣(LeetCode)

首先创建一个队列用于不断弹出元素,首先先把root进去,然后取值,并把null排除,不断的向队列里面添加后续节点。

class Solution {
    public List<List<Integer>> levelOrder(TreeNode root) {
        ArrayList<List<Integer>> arrayList = new ArrayList<>();
        if(root == null){
            return arrayList;
        }
        Deque<TreeNode> deque = new LinkedList<>();
       
        deque.offer(root);
        while(!deque.isEmpty()){
             ArrayList<Integer> valList = new ArrayList<>();
            int n = deque.size();
        for(int i = 0;i< n ;i++){
            TreeNode s = deque.poll();
            valList.add(s.val);
            if(s.left != null){
                deque.offer(s.left);
            }
            if(s.right != null){
                deque.offer(s.right);
            }
        }
        arrayList.add(valList);
        } 
        return arrayList;
    }
}

力扣第35题:搜索插入位置

35. 搜索插入位置 - 力扣(LeetCode)

二分查找

class Solution {
    public int searchInsert(int[] nums, int target) {
        int left = 0;
        int right = nums.length - 1;
      
        while(left <= right){
              int mid = (left + right) /2;
            if(target < nums[mid]){
                right = mid - 1;
            }
            else if(target > nums[mid]){
                left = mid +1;
            }
            else{
                return mid;
            }
        }
        return left;
    }
}

力扣第70题:爬楼梯

70. 爬楼梯 - 力扣(LeetCode)

class Solution {
    public int climbStairs(int n) {
        int p =0 ,q = 0,r = 1;
        for(int i = 0; i <n;i++){
           
             p =q;
             q = r;
             r = p +q;

        }
        return r;
    }
}


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


网站公告

今日签到

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