一、leetcode-404
左叶子之和
给定二叉树的根节点 root ,返回全部左叶子之和。
输入:root = [3,9,20,null,null,15,7]
输出:24
二、题解
1.引库
- #include <iostream>
- #include <cstdio>
- #include <cstdlib>
- #include <queue>
- #include <stack>
- #include <algorithm>
- #include <string>
- #include <map>
- #include <set>
- #include <vector>
- using namespace std;
-
复制代码 2.代码
- class Solution {
- public:
- int sumOfLeftLeaves(TreeNode* root) {
- if(root==NULL) return 0;
- if(root->left==NULL&&root->right==NULL) return 0;
- //当左子树就是叶子节点就直接加和,否则递归
- int leftsum=0;
- if(root->left&&root->left->left==NULL&&root->left->right==NULL)
- leftsum=root->left->val;
- else leftsum=sumOfLeftLeaves(root->left);
- int rightsum=sumOfLeftLeaves(root->right);
- return leftsum+rightsum;
- }
- };
复制代码 迭代法
- class Solution {
- public:
- int sumOfLeftLeaves(TreeNode* root) {
- if(root==NULL) return 0;
- stack<TreeNode *> st;
- st.push(root);
- int result=0;
- while(!st.empty()){
- TreeNode *node=st.top();
- st.pop();
- if(node->left&&node->left->left==NULL&&node->left->right==NULL)
- result+=node->left->val;
- if(node->left) st.push(node->left);
- if(node->right) st.push(node->right);
- }
- return result;
- }
- };
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |