摘要:解題思路一道非常簡單的題目,不能被繞進去,首先要把題目讀明白,左右坡度差本質上是左右子樹和之差,那么問題就簡單了,每次,返回的就是當前所在子樹之和,更新坡度差的話就是當前左右子樹之差,這兩個要分開來計算,代碼如下
解題思路:
一道非常簡單的題目,不能被繞進去,首先要把題目讀明白,左右坡度差本質上是左右子樹和之差,那么問題就簡單了,每次dfs,返回的就是當前root所在子樹之和,更新坡度差的話就是當前root左右子樹之差,這兩個要分開來計算,代碼如下:
/** * 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 {private: int ans = 0;public: int findTilt(TreeNode* root) { dfs(root); return ans; } int dfs(TreeNode* root) { if(root == nullptr) { return 0; } int sumA = dfs(root -> left); int sumB = dfs(root -> right); ans += abs(sumA - sumB); return sumA + sumB + root -> val; }};
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/123942.html
摘要:每日一題二叉樹的坡度鏈接二叉樹的坡度題目分析簡單的問題。首先明確思路,我們需要遍歷每一個點,然后求出該點左右子樹的值的總和,然后做差,答案累計這個差值即可。 lee...
摘要:在線網站地址我的微信公眾號完整題目列表從年月日起,每天更新一題,順序從易到難,目前已更新個題。這是項目地址歡迎一起交流學習。 這篇文章記錄我練習的 LeetCode 題目,語言 JavaScript。 在線網站:https://cattle.w3fun.com GitHub 地址:https://github.com/swpuLeo/ca...我的微信公眾號: showImg(htt...
摘要:有效三角形的個數雙指針最暴力的方法應該是三重循環枚舉三個數字。總結本題和三數之和很像,都是三個數加和為某一個值。所以我們可以使用歸并排序來解決這個問題。注意因為歸并排序需要遞歸,所以空間復雜度為 ...
題目地址:https://leetcode-cn.com/probl...題目描述: 給定一個非空二叉樹,返回其最大路徑和。 本題中,路徑被定義為一條從樹中任意節點出發,達到任意節點的序列。該路徑至少包含一個節點,且不一定經過根節點。 示例 1: 輸入: [1,2,3] 1 / 2 3 輸出: 6 示例 2: 輸入: [-10,9,20,nul...
閱讀 774·2023-04-25 15:13
閱讀 1395·2021-11-22 12:03
閱讀 824·2021-11-19 09:40
閱讀 1906·2021-11-17 09:38
閱讀 1711·2021-11-08 13:18
閱讀 654·2021-09-02 15:15
閱讀 1763·2019-08-30 15:54
閱讀 2632·2019-08-30 11:12