Java教程

563. 二叉树的坡度 (Java) Leecode

本文主要是介绍563. 二叉树的坡度 (Java) Leecode,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

在这里插入图片描述
对每个节点计算坡度,利用后续遍历,累加求坡度和。
每个节点的坡度,是每个节点的左右子树之和的绝对值。

class Solution{

	int count = 0; 
    public int findTilt(TreeNode root) {

        traverse(root);
        return count;
    }


    int traverse(TreeNode root){

        if(root == null){
            return 0;
        }

        int leftSum = traverse(root.left);

        int rightSum = traverse(root.right);
		
		//后序遍历
		
        count += Math.abs(leftSum - rightSum);
		//每个节点的坡度,是每个节点的左右子树之和的绝对值
        return leftSum + rightSum + root.val;
        
    }
}
这篇关于563. 二叉树的坡度 (Java) Leecode的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!