leetcode404. 左叶子之和
生活随笔
收集整理的這篇文章主要介紹了
leetcode404. 左叶子之和
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一:題目
二:上碼
/*** 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:/**思路:1.我們需要采用一種遍歷方法 這里采用的是前序遍歷 (因?yàn)橐?jié)點(diǎn)打交道,所以我們必定需要一種遍歷節(jié)點(diǎn)的順序)2.遞歸三部曲1>:確定遞歸函數(shù)的參數(shù)和返回值(這里我們的返回參數(shù)為二叉樹的根節(jié)點(diǎn),以及一個記錄左葉子節(jié)點(diǎn)的容器)void getAns(TreeNode* root,vector<int>&res) 2>:遞歸的終止條件root == NULL return;3>:確定遞歸函數(shù)的遞歸體我們選擇葉節(jié)點(diǎn)的父節(jié)點(diǎn)來確定 左節(jié)點(diǎn)的值if(root->left->left == NULL && root->right->right == NULL){res.push_back(root->left->val);} if(root->left) getAns(root->left,res);if(root->right) getAns(root->right,res);**/ void getAns(TreeNode* root,vector<int>&res) {if(root == NULL) return;if(root->left != NULL && root->left->left == NULL && root->left->right == NULL){res.push_back(root->left->val);// cout << root->left->val << endl;}if(root->left) getAns(root->left,res);if(root->right) getAns(root->right,res);}int sumOfLeftLeaves(TreeNode* root) {vector<int>v;getAns(root,v);int sum = 0;for(auto nums : v){sum += nums;}return sum;} };
家人們 家人們 淚目了 驚呆菜雞杰了 兩個晚上了菜雞杰終于沒看題解 自己用遞歸寫出來了 雖然不是特別難 但是從0到1對于菜雞杰來說 也是一大步了 繼續(xù)加油 家人們
總結(jié)
以上是生活随笔為你收集整理的leetcode404. 左叶子之和的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 黄山毛峰的功效与作用、禁忌和食用方法
- 下一篇: 果冻的功效与作用、禁忌和食用方法