538. Convert BST to Greater Tree

本文介绍了一种通过中序遍历二叉搜索树(BST)来实现节点值转换的方法,使得每个节点的新值等于树中大于或等于其原始值的所有节点值之和。文章提供了两种实现方式,一种使用递归,另一种采用非递归方式,利用栈进行中序遍历。

利用树遍历的有序性:中序遍历。当然,递归和非递归的想法总是合理的。

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    private int sum = 0;
    public TreeNode convertBST(TreeNode root) {
        if(root != null) {
           convertBST(root.right);
           root.val += sum;
           sum = root.val;
           convertBST(root.left);
        }
        return root;
    }
}
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public TreeNode convertBST(TreeNode root) {
        if(root == null){
            return root;
        }
        
        TreeNode node = root;
        
        Stack<TreeNode> stack = new Stack<>();
        TreeNode preNode = null;
        
        while(!stack.isEmpty() || node!=null){
            while(node!=null){
                stack.push(node);
                node = node.right;
            }
            
            node = stack.pop();
            if(preNode != null){
                node.val += preNode.val;
            }
            preNode = node;            
            node = node.left;
        }
        
        return root;
    }
    
}

 

【超级棒的算法改进】融合鱼鹰和柯西变异的麻雀优化算法研究(Matlab代码实现)内容概要:本文介绍了一种融合鱼鹰优化算法(BKA)和柯西变异策略的改进型麻雀搜索算法(SSA),旨在提升传统麻雀算法在全局搜索能力、收敛速度和避免陷入局部最优方面的性能。通过引入鱼鹰算法的捕食行为机制增强种群多样性,并结合柯西变异提高算法跳出局部极值的能力,从而构建出一种更为高效的混合优化算法OCSSA。该算法被成功应用于多个工程优化场景,如神经网络参数优化、微电网多目标调度、储能系统选址定容以及轴承故障诊断等领域,实验结果表明其在寻优精度和稳定性方面均优于多种经典和先进优化算法。此外,文中还配套提供了完整的Matlab代码实现,便于读者复现与扩展应用。; 适合人群:具备一定编程基础和优化算法背景,从事智能优化、机器学习、电力系统、信号处理等相关领域研究的研究生、科研人员及工程技术人员;熟悉Matlab语言并希望将智能算法应用于实际问题求解的开发者。; 使用场景及目标:①解决复杂非线性优化问题,如函数优化、参数调优、多目标调度等;②提升现有智能算法的搜索效率与鲁棒性,特别是在高维、多峰、约束优化问题中;③应用于神经网络训练、故障诊断、能源系统优化等实际工程项目中,实现更高精度的建模与预测。; 阅读建议:建议读者结合提供的Mat
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值