每天一道LeetCode-----计算二叉树所有根节点到叶子节点的和
生活随笔
收集整理的這篇文章主要介紹了
每天一道LeetCode-----计算二叉树所有根节点到叶子节点的和
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Sum Root to Leaf Numbers
原題鏈接Sum Root to Leaf Numbers
二叉樹每個從根節點到葉子節點的路徑都代表一個整數,計算所有整數的和
只需要遍歷一遍整棵數即可,需要注意必須是到達葉子節點
代碼如下
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/ class Solution { public:int sumNumbers(TreeNode* root) {int sum = 0;int cur = 0;findSum(root, cur, sum);return sum;} private:void findSum(TreeNode* root, int cur, int& sum) {if(!root) return;cur = cur * 10 + root->val;if(root->left && !root->right)findSum(root->left, cur, sum);else if(!root->left && root->right)findSum(root->right, cur, sum);/* 葉子節點,增加到sum中 */else if(!root->left && !root->right)sum += cur;else{findSum(root->left, cur, sum);findSum(root->right, cur, sum);}} };本題比較簡單,二叉樹的問題利用遞歸還是比較容易理解的
總結
以上是生活随笔為你收集整理的每天一道LeetCode-----计算二叉树所有根节点到叶子节点的和的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis源码剖析(十三)整数集合
- 下一篇: STL源码学习(一)迭代器概念与trai