给出一个二叉树,用一个函数确定是否有一条从根节点到叶子节点的路径,这个路径上所有节点的值加在一起等于给定的sum的值。函数声明hasPathSum已经给出,写出程序设计思路并且实现该函数。尽量提供多种实现方法。 /** * 二叉树节点定义如下: * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ bool hasPathSum(TreeNode *root, int sum) { } 示例: 给定的二叉树和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ \ 7 2 1 返回值是ture, 即存在一条 root-to-leaf 的路径 5->4->11->2 节点值相加等于22