One Day together Leetcode
This series of articles has all been uploaded to my github address: Zeecoder ' s GitHub
You are welcome to follow my Sina Weibo, my Sina Weibo blog
Welcome reprint, Reprint please indicate the source
(i) Title
Given a binary tree and a sum, determine if the tree has a root-to-leaf path such this adding up all the values along the Path equals the given sum.
For example:
Given the below binary tree and sum = 22,
5 / 4 8 / / 11 13 4 / \ 7 2 1
Return true, as there exist a root-to-leaf path 5->4->11->2 which sum is 22.
(ii) Problem solving
Topic: Given a binary tree and an integer, the binary tree has a root node to the leaf node path, so that the value of all nodes on the path plus equal to the integer.
Problem-solving ideas: recursion, touching the leaf node even if the value of the node on the path, judgment, etc. is not equal to the integer.
/** * Definition for a binary tree node. * struct TreeNode {* int val; * TreeNode *left; * TreeNode *righ T * TreeNode (int x): Val (x), left (null), right (NULL) {} *}; */classSolution { Public:BOOLHaspathsum (treenode* root,intSUM) {if(Root==null)return false;//Tree is empty returns false BOOLFlag =false; Dfstree (Root,sum,0, flag);//recursive function returnFlag }//sum for the required path and //cur for the current path and //flag for whether to meet Cur==sum voidDfstree (treenode* root,int& Sum,intCurBOOL& Flag) {if(Root->left = = NULL && root->right==null)if(!flag) flag= (sum== (cur+root->val));//At this time for the leaf node, determine the path and not equal to sum if(root->left!=null) Dfstree (Root->left,sum,cur+root->val,flag);//Go to left sub-tree search if(root->right!=null) Dfstree (Root->right,sum,cur+root->val,flag);//Go to right sub-tree search}};
"One Day together Leetcode" #112. Path Sum