有大神能教一下菜菜嘛?求二叉树的最小值节点和最大值节点的距离
看了答案知道了用lca+depth的方式做,但是我很好奇我为什么是wa呜呜呜

package org.example;

import java.util.*;

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param root TreeNode类 树的根节点
     * @return int整型
     */
    int max = Integer.MIN_VALUE;
    int min = Integer.MAX_VALUE;
    public void getMaxMin(TreeNode root){
        if(root==null){
            return ;
        }
        max =Math.max(max,root.val);
        min =Math.min(min,root.val);
        getMaxMin(root.left);
        getMaxMin(root.right);
    }

    Map<TreeNode,Integer> mapmin = new HashMap<>();
    Map<TreeNode,Integer> mapmax = new HashMap<>();

    public boolean getparent(TreeNode root,int target,Map<TreeNode,Integer> map){
        if (root==null){
            return false;
        }
        if(root.val==target){
            map.put(root,0);
            return true;
        }
        boolean t1 = getparent(root.left,target,map);
        boolean t2 = getparent(root.right,target,map);
        if (t1){
            map.put(root ,map.get(root.left)+1);
            return true;
        }else if (t2){
            map.put(root ,map.get(root.right)+1);
            return true;
        }else{
            return false;
        }
    }

    public int getDis (TreeNode root) {
        // write code here

        TreeNode temp = root;
        getMaxMin(temp);

        temp = root;
        getparent(temp,min,mapmin);
        temp = root;
        getparent(temp,max,mapmax);

        int minpar = Integer.MAX_VALUE;
        TreeNode targetNode = null;
        for (TreeNode treeNode : mapmin.keySet()) {
            if (mapmax.containsKey(treeNode)&&minpar>mapmax.get(treeNode)   ){
                minpar=mapmax.get(treeNode);
                targetNode = treeNode;
            }
        }

        return mapmax.get(targetNode) + mapmin.get(targetNode);
    }
}
全部评论
在网上除了ai没人愿意为你读这么长的代码的
点赞 回复 分享
发布于 10-18 18:42 贵州

相关推荐

头像
10-19 20:44
门头沟学院 Java
我记得我学Java基础的时候就一直有人压力我,当然一路走来这些乐子人并不少,最开始每一个人我都会去和他争论,后面发现这种充满戾气傲慢的人太多了,也可能是我被网暴的太多了阈值提高了,后面大部分乐子人我都会无视或者删评论,除非一些人实在是攻击性太强了,或者说恶意太大,这时候我还是忍不住跟他对喷,哈哈哈哈心里面明白这种乐子人不理他他就是小丑,但是对于这种无端的恶意我总是忍不住愤怒,傲慢与偏见是他们共同的特点,他不会换位思考自己的言论会对别人带来伤害,单单一个“这个人让我不爽”这些荒唐的理由,就会让他们以“言论自由”的护身符肆无忌惮的对别人就行攻击,他们并不明白别人的生活与他无关,也不明白言论自由不是网络暴力的理由,我想这些乐子人只有别人同样拿着言论自由的武器对他或者他的家人攻击时才会跳脚和感同身受。我观察过对我网络暴力的人:一种是跟我同龄但是背景更好实力更加强,他们攻击时身上的傲慢与偏见最为明显,颇有一种指点江山的地位俯视你,出发点一般在于一种极致的傲慢,他们认为你的成就或者进步不值得这种程度的炫耀,或者说他们认为你的收获不值一提,他们会强行将自己或者他朋友怎么怎么样,来把要求强加在弱势的你身上,以此来攻击嘲讽。当然我也认识很多大佬他们十分友善也给了我很多帮助。另一种是年龄更大的,他们攻击时往往携带着大家长的架子和过来人的语气,表面上看是语重心长,实际上是携带很多自己失败和时代悲哀的包袱,并且会教条的以此为经验教育你,当你不认同时他们就会跳脚着急愤怒辱骂,他们的特点是傲慢偏见和教条,还有让人恶心的大家长架子,一种近似道德绑架的教育。当然这只是少部分,大部分人还是愿意给与大家帮助,平易近人。最后我想感慨的是学计算机的人是不是太压抑了,一路走来被网暴的多了,我也开始慢慢的观察这种人,像是一种社会实验,很有意思也很锻炼心态。当然直到现在我还是会跟一下乐子人对喷,那种无端和莫名其妙的傲慢与偏见总是能让年轻的我感到异常愤怒。ps:写于2025.10.19再一次破戒忍不住愤怒跟网暴者对喷后有感
asdasdasda...:错误的,不学计算机的也会这样
求职季如何保持心态不崩
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务