讨论/题目交流/二叉树的坡度问题 /
二叉树的坡度问题

二叉树的坡度问题
代码

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */
 //找出每一颗树的总值;
int findsumtree(struct TreeNode *t)
{
     
        if(t==NULL)
        return 0;
        return t->val+findsumtree(t->left)+findsumtree(t->right);            
}


int findTilt(struct TreeNode* root){
 
    int n1=0,n2=0,sum=0;
    int sum1 ,sum2;
    if(root==NULL)  return 0;
    // root 为根的左右子树;
    //两个均不为空的情况;
    if(root->left!=NULL && root->right!=NULL) {
           n1=findsumtree(root->left);
           n2=findsumtree(root->right);      
           sum=n1-n2;
           sum=abs(sum);
    } 
    if(root->left==NULL && root->right==NULL){
           sum=0;
    }  // 都为空 


     // 一个为空时; 
     if(root->left!=NULL && root->right==NULL){
     sum=findsumtree(root->left);

     }
     if(root->left==NULL &&  root->right!=NULL)
     {
          sum=findsumtree(root->right);
     }
   //遍历左右结点;  

   sum1= findTilt(root->left);   // 结点的坡度; 
   sum2= findTilt(root->right);
   return   sum+sum1+sum2;  //根左右的坡度相加;
}

题目 : |563|二叉树的坡度|简单|
输入 例 [-8,3,0,-8,null,null,null,null,-1,null,8]
会输出 16;
答案为 18;
这个树感觉不对?
第一层 :-8 ;
第二层 :3 0;
第四层 :-8 null null null
第五层 : nulll -1 null 8;
第四层 仅有 -8; 对应两个 null -1 ; 其余为 null null null 第五层的 值为 8的结点对应的第四次的父节点是那个??
我记得给出的样例一般按的是BFS 的输出 它这个使用的是其它的方式输出吗?;
请问上述的代码哪有问题?

展开讨论
一码当先发起于 2020-05-20
最近编辑于 2020-05-20

有多一层,null,8是跟在-1下的