leetcode 404 Sum of Left Leaves
2017-02-18 15:51
645 查看
Findthesumofallleftleavesinagivenbinarytree.
Example:
也可用bfs
网上大神的dfs:深度优先遍历,将所有结点从根结点开始遍历一遍,设立isLeft的值,当当前结点是叶子节点并且也是左边,那就result加上它的值
Example:
3 /\ 920 /\ 157 Therearetwoleftleavesinthebinarytree,withvalues9and15respectively.Return24. 分析:关键是怎么判断它是左叶子;
/** *Definitionforabinarytreenode. *structTreeNode{ *intval; *TreeNode*left; *TreeNode*right; *TreeNode(intx):val(x),left(NULL),right(NULL){} *}; */ classSolution{ public: intsumOfLeftLeaves(TreeNode*root){ if(root==NULL) return0; TreeNode*temp=root->left; if(temp&&(temp->left==NULL)&&(temp->right==NULL)) returntemp->val+sumOfLeftLeaves(root->right); else returnsumOfLeftLeaves(root->left)+sumOfLeftLeaves(root->right); } };
也可用bfs
网上大神的dfs:深度优先遍历,将所有结点从根结点开始遍历一遍,设立isLeft的值,当当前结点是叶子节点并且也是左边,那就result加上它的值
/** *Definitionforabinarytreenode. *structTreeNode{ *intval; *TreeNode*left; *TreeNode*right; *TreeNode(intx):val(x),left(NULL),right(NULL){} *}; */ classSolution{ public: intresult=0; intsumOfLeftLeaves(TreeNode*root){ if(root==NULL) return0; dfs(root,false); returnresult; } voiddfs(TreeNode*root,boolisLeft){ if(root->left==NULL&&root->right==NULL){ if(isLeft==true) result+=root->val; return; } if(root->left!=NULL) dfs(root->left,true); if(root->right!=NULL) dfs(root->right,false); } };
相关文章推荐
- Leetcode #404 Sum of Left Leaves
- [LeetCode-404]Sum of Left Leaves(java)
- leetcode 404 Sum of Left Leaves C++
- LeetCode@Tree_404_Sum_of_Left_Leaves
- LeetCode 404 Sum of Left Leaves
- LeetCode-404-Sum of Left Leaves-E
- LeetCode[404] Sum of Left Leaves
- LeetCode@HashMap_404_Sum_of_Left_Leaves
- LeetCode 404: Sum of Left Leaves
- leetcode404: Sum of Left Leaves
- LeetCode 404:Sum of Left Leaves
- [Leetcode] #404 Sum of Left Leaves
- LeetCode 404 Sum of Left Leaves
- leetcode 404 Sum of Left Leaves
- 【LeetCode】404 Sum of Left Leaves(java实现)
- leetcode-404-Sum of Left Leaves
- leetcode 404 Sum of Left Leaves
- leetcode(404):Sum of Left Leaves
- Leetcode 404 Sum of Left Leaves
- 【LeetCode】404 Sum of Left Leaves(java实现)