【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);
        }

    }


}

记录

总结

相关推荐
wen__xvn7 分钟前
代码随想录算法训练营DAY27第八章 贪心算法 part01
算法·贪心算法
We་ct20 分钟前
LeetCode 125. 验证回文串:双指针解法全解析与优化
前端·算法·leetcode·typescript
客卿12323 分钟前
力扣20-有效括号(多家面试题)
算法·leetcode·职场和发展
木井巳35 分钟前
【递归算法】快速幂解决 pow(x,n)
java·算法·leetcode·深度优先
Maỿbe1 小时前
重走力扣hot的矩阵
算法·leetcode·矩阵
朔北之忘 Clancy1 小时前
2025 年 12 月青少年软编等考 C 语言二级真题解析
c语言·开发语言·c++·学习·算法·青少年编程·题解
2301_790300961 小时前
C++与增强现实开发
开发语言·c++·算法
每天要多喝水2 小时前
贪心算法专题Day18
算法·贪心算法
毅炼2 小时前
hot100打卡——day14
java·数据结构·算法·leetcode·ai·深度优先·哈希算法
liliangcsdn2 小时前
RL中GAE的计算过程详解
大数据·人工智能·算法