力扣404.左叶子之和
我觉得没啥难度,就是对这课树进行一个遍历,在遍历的过程中将是叶子节点且是左孩子的节点的值累加。
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:int ans;void countcnt(TreeNode* root,TreeNode* tmp){if(root==nullptr){return ;}else{countcnt(root->left,root);if(root->left==nullptr&&root->right==nullptr&&tmp->left==root){ans+=root->val;}countcnt(root->right,root);}}int sumOfLeftLeaves(TreeNode* root) {countcnt(root,root);return ans;}
};
时间复杂度O(n)
搞清楚遍历即可
可以看:
力扣二叉树的前序中序后序遍历总结