leetcode 538. 把二叉搜索树转换为累加树
思路
反向中序遍历二叉树,将结果进行累加。
代码:
/** * 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 sum_val = 0; // 定义初始累加值 TreeNode* convertBST(TreeNode* root) { if (root!=NULL) { convertBST(root->right);//中序遍历二叉树 sum_val+=root->val;//累加上一步的结果 root->val = sum_val;//替换每个节点的值 convertBST(root->left); //递归左子树 } return root;//返回累计后的根节点 } };
以大多数人努力程度之低,根本轮不到去拼天赋~