68 BFS解从根到叶的二进制数之和

发布时间:2023年12月25日

问题描述:给出一颗二进制数,书上每个节点都是0或者1,每一条从根到叶的路径都代表一个从最高有效位开始的二进制数。例如,如果路近0->1->1->0->1那么它代表耳机智能化数01101,也就是13,在树上的每一片叶子,我们都要找出从根到该叶子节点的数字,返回数字之和。

求解思路:每遍历到一个节点,其值等于父节点的值*2+当前节点的值,使用dfs进行求解。
int res=0;

public void?dfs(TreeNode root,int parentSum)
{
if(root==null){return;}
if(root.left==null&&root.right==null){res+=parentSum;return;}
dfs(root.left,parentSum*2+root.val);
dfs(root.right,parentSum*2+root.val);

}
public int DFS(TreeNode root)
{
dfs(root,0);
}

文章来源:https://blog.csdn.net/qq_52299902/article/details/135202254
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。