【d66】【Java】【力扣】174.寻找二叉搜索树中的目标节点

思路

反着的中序遍历,并计数

代码

复制代码
/**
 * 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 {
   
    //遍历次数
    int c=0;
    //要找的数字
    int cnt;
    int result;
    boolean enough=false;

    //寻找第cnt大的数
    public int findTargetNode(TreeNode root, int cnt) {
        this.cnt=cnt;
        fMidOrder(root);
        return result;
    }

    /**
     * 反中序遍历,右中左,遍历一次累计一次,当次数等于cnt,result就是这个数,
     * @param root
     * @return
     */
    public void fMidOrder(TreeNode root) {
        //判断是否足够
        if (enough||root==null) {
            return;
        }
        //遍历右边
        if (root.right!= null) {
            fMidOrder(root.right);
        }
        //遍历自己
        c++;
        if (c==cnt ) {
            result=root.val;
            enough=true;
            return;
        }
        //遍历左边
        if (root.left!= null) {
            fMidOrder(root.left);
        }

    }


}

记录

总结

相关推荐
不知名的老吴14 分钟前
经典算法题之行星碰撞
数据结构·算法
西安邮电大学20 分钟前
有关数组的经典算法题
java·后端·其他·算法·面试
学Linux的语莫26 分钟前
大模型微调数据集格式详解:Alpaca、ShareGPT、DPO、KTO、预训练数据怎么构建?
人工智能·算法·机器学习·微调格式
wayz1127 分钟前
Momentum:UO(终极震荡指标)技术指标详解
算法·金融·数据分析·量化交易·特征工程
Boom_Shu34 分钟前
浅拷贝与深拷贝
开发语言·c++·算法
触底反弹1 小时前
一文彻底搞懂 JavaScript 栈和队列(建议收藏)
javascript·算法·面试
WL学习笔记1 小时前
通讯录(顺序表实现)
c语言·数据结构·算法
Jerryhut1 小时前
opencv对齐算法及其应用
人工智能·opencv·算法
果丁智能2 小时前
智慧校园一卡通深度融合方案:基于超级SIM卡的手机碰一碰智能开锁技术落地实践
数据结构·人工智能·python·科技·算法·智能家居·信息与通信
满怀冰雪2 小时前
第13篇-栈算法入门-括号匹配-表达式与单调栈基础
java·算法