题解 | #二叉树根节点到叶子节点的所有路径和#
二叉树根节点到叶子节点的所有路径和
http://www.nowcoder.com/practice/185a87cd29eb42049132aed873273e83
static int res=0; #最后要输出的答案 void dfs(struct TreeNode* t,int i) #dfs本体 { if(t==NULL)return; #如果传过来的节点为空,直接返回 i=i*10+t->val; #将当前节点的值加入遍历的路径值 if(t->left==NULL && t->right==NULL) #如果左右节点均为空,则该节点为叶节点,答案加上i,并返回,i为路径中的数字相加 { res+=i; return; } if(t->left!=NULL) #如果左节点不为空,向左节点遍历 { dfs(t->left,i); } if(t->right!=NULL) #如果右节点不为空,向右节点遍历 { dfs(t->right,i); } } int sumNumbers(struct TreeNode* root ) { // write code here dfs(root,0); #传入根节点 return res; #返回答案 }