首页 > 其他分享 >day20

day20

时间:2023-02-04 21:33:25浏览次数:35  
标签:node pre TreeNode day20 return null root

1、530.二叉搜索树的最小绝对差

class Solution {
    private int res = Integer.MAX_VALUE;
    private TreeNode pre;

    public void traversal(TreeNode node) {
        if(node == null) {
            return;
        }

        traversal(node.left);
        if(pre != null){
            res = Math.min(res, node.val-pre.val);
        }
        pre = node;
        traversal(node.right);

    }

    public int getMinimumDifference(TreeNode root) {
        traversal(root);
        return res;
    }
}

2、501.二叉搜索树中的众数

class Solution {
    ArrayList<Integer> resList;
    int count;
    int maxCount;
    TreeNode pre;

    public void traversal(TreeNode node) {
        if(node == null) {
            return;
        }

        traversal(node.left); //左

                              //中  
        if(pre == null){
            count = 1;
        } else if(pre.val == node.val){
            count++;
        }else{
            count = 1;
        }
        pre = node;

        if(count == maxCount){
            resList.add(node.val);
        }
        if(count > maxCount){
            maxCount = count;
            resList.clear();
            resList.add(node.val);
        }

        traversal(node.right); //右

        return;
    }

    public int[] findMode(TreeNode root) {
        resList = new ArrayList<>();
        maxCount = 0;
        count = 0;
        pre = null;
        
        traversal(root);
        int[] res = new int[resList.size()];
        for(int i=0; i<resList.size(); i++){
            res[i] = resList.get(i);
        }
        return res;
    }
}

3、236. 二叉树的最近公共祖先

class Solution {
    public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
        if(root==q || root==p || root==null){
            return root;
        }

        TreeNode left = lowestCommonAncestor(root.left, p, q);
        TreeNode right = lowestCommonAncestor(root.right, p, q);

        if(left!=null && right!=null){
            return root;
        }

        if(left==null && right!=null){
            return right;
        } else if(left!=null && right==null){
            return left;
        } else {
            return null;
        }

    }
}

标签:node,pre,TreeNode,day20,return,null,root
From: https://www.cnblogs.com/hzj-bolg/p/17092447.html

相关文章

  • day20IO流
    1.字符流1.1为什么会出现字符流【理解】字符流的介绍由于字节流操作中文不是特别的方便,所以Java就提供字符流字符流=字节流+编码表中文的字节存储方式用字节......
  • 代码随想录算法训练营Day20|654. 最大二叉树、700. 二叉搜索树中的搜索、98. 验证二叉
    代码随想录算法训练营Day20|654.最大二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树654.最大二叉树654.最大二叉树注意题干信息:整数数组nums元素不重复:元......
  • 【算法训练营day20】LeetCode654. 最大二叉树 LeetCode617. 合并二叉树 LeetCode700.
    LeetCode654.最大二叉树题目链接:654.最大二叉树初次尝试和昨天最后一题的思路很像,本质上都是递归构建二叉树。classSolution{public:TreeNode*constructMa......
  • day20221125周五今天学了什么知识?节约时间 seize the time
    day20221125周五今天学了什么知识?节约时间seizethetime买纯牛奶。 公司的网不能看课的话,那就下载下来看。自己没钱,存钱。然后吃蔬菜对身体好。节俭和勤劳是美德。......
  • day20 --> (JQuery基础)
     JQuery基础:1.概念:一个JavaScript框架。简化JS开发JavaScript框架【简单理解】:本质上就是一些js文件,封装了js的原生代码而已2.快速入门:1、下载JQuery文件jQuery-......
  • day20221124今天学会了什么?
    day20221124周四学习方法:看文献学习,阅读。看视频学习,泡进代码。学呗,不会就问。手把手教。》工作技术最重要:今天计划做什么任务?今天学会了什么?做PPT》明天学会了什么......
  • Day20.1:关于this、super的解析
    this、super详解当我们在外部程序调用一个类的方法,如果这个类的方法与其父类的方法重载,我们需要用this、super进行区分this在Java中是一个复杂的关键字,this的使用形式体......
  • Day20:继承详解
    继承的理解继承:对类进行抽象化;也就是将存在的类构造成新的类;比如说学生是一个类,老师是一个类,那么我们可以将学生类和老师类收纳进人这个类;那么学生和老师则为子类(派生类)......
  • day20-web开发会话技术02
    WEB开发会话技术026.Cookie的生命周期默认情况下,Cookie只在浏览器的内存中存活,也就是说,当你关闭浏览器后,Cookie就会消失。但是也可以通过方法设置cookie的生存时间。coo......
  • day20
    【0206.翻转链表】/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode():val(0),next(nullp......