二叉树求所有路径之和

形如下二叉树求所有路径之和

输出结果应为(1+2)+(1+3)=7

二叉树转化为对象如下格式

   value:1,

     left:{

          value:2

     },

    right:{

         value:3

    }

function getPathSum(root){

    if(root==null){

       return 0

    }

    let result=[]

  //获取每条路径的和

    function getSigleSum(node,res){

       if(node==null){

         return 0

        }

        res+=node.value

       if(node.left!=undefined){

         getSigleSum(node.left,res)

       }

       if(node.right!=undefined){

           getSigleSum(node.right,res)

       }

       if(node.left==undefined&&node.right==undefined){

            result.push(res)

       }

    }

   getSigleSum(root,0)

    let  sum=0

    result.forEach(item=>{

          sum+=item

     })

   return sum

}

你可能感兴趣的:(二叉树求所有路径之和)