problemscpp
A collection of my answers to algorithm problems in c++.
静态 Public 成员函数 | 所有成员列表
leetcode::convert_bst_to_greater_tree::Solution类 参考

#include <leetcode.h>

静态 Public 成员函数

static void convert (FriendTreeNode *)
 
static TreeNodeconvertBST (TreeNode *root)
 
static FriendTreeNodecopy (TreeNode *)
 
static void get_sum (FriendTreeNode *)
 

详细描述

在文件 leetcode.h158 行定义.

成员函数说明

◆ convert()

void leetcode::convert_bst_to_greater_tree::Solution::convert ( FriendTreeNode sum_node)
static

在文件 leetcode.cpp268 行定义.

268 {
269 if(sum_node->right != nullptr) {
270 sum_node->right->val = sum_node->val - sum_node->friend_node->val -
271 (sum_node->right->left == nullptr ? 0 : sum_node->right->left->sum);
272 convert(sum_node->right);
273 }
274 if(sum_node->left != nullptr) {
275 sum_node->left->val = sum_node->val + sum_node->left->friend_node->val +
276 (sum_node->left->right == nullptr ? 0 : sum_node->left->right->sum);
277 convert(sum_node->left);
278 }
279 sum_node->friend_node->val = sum_node->val;
280 }
static void convert(FriendTreeNode *)
Definition: leetcode.cpp:268

引用了 convert(), leetcode::convert_bst_to_greater_tree::FriendTreeNode::friend_node, leetcode::convert_bst_to_greater_tree::FriendTreeNode::left, leetcode::convert_bst_to_greater_tree::FriendTreeNode::right, leetcode::convert_bst_to_greater_tree::FriendTreeNode::sum, leetcode::TreeNode::val , 以及 leetcode::convert_bst_to_greater_tree::FriendTreeNode::val.

被这些函数引用 convert() , 以及 convertBST().

◆ convertBST()

TreeNode * leetcode::convert_bst_to_greater_tree::Solution::convertBST ( TreeNode root)
static

在文件 leetcode.cpp235 行定义.

235 {
236 if(root == nullptr) {
237 return nullptr;
238 }
239 FriendTreeNode *sum = copy(root);
240 get_sum(sum);
241 sum->val = sum->sum - (sum->left == nullptr ? 0 : sum->left->sum);
242 convert(sum);
243 return root;
244 }
vector< int > root
Definition: acwing408.cpp:349
static void get_sum(FriendTreeNode *)
Definition: leetcode.cpp:257
static FriendTreeNode * copy(TreeNode *)
Definition: leetcode.cpp:246

引用了 convert(), copy(), get_sum(), leetcode::convert_bst_to_greater_tree::FriendTreeNode::left, acwing::acwing836_408::root, leetcode::convert_bst_to_greater_tree::FriendTreeNode::sum , 以及 leetcode::convert_bst_to_greater_tree::FriendTreeNode::val.

被这些函数引用 leetcode::convert_bst_to_greater_tree::TEST().

◆ copy()

FriendTreeNode * leetcode::convert_bst_to_greater_tree::Solution::copy ( TreeNode node)
static

在文件 leetcode.cpp246 行定义.

246 {
247 auto *ret = new FriendTreeNode(node->val, node);
248 if(node->left != nullptr) {
249 ret->left = copy(node->left);
250 }
251 if(node->right != nullptr) {
252 ret->right = copy(node->right);
253 }
254 return ret;
255 }

引用了 copy(), leetcode::TreeNode::left, leetcode::TreeNode::right , 以及 leetcode::TreeNode::val.

被这些函数引用 convertBST() , 以及 copy().

◆ get_sum()

void leetcode::convert_bst_to_greater_tree::Solution::get_sum ( FriendTreeNode node)
static

在文件 leetcode.cpp257 行定义.

257 {
258 if(node->left != nullptr) {
259 get_sum(node->left);
260 node->sum += node->left->sum;
261 }
262 if(node->right != nullptr) {
263 get_sum(node->right);
264 node->sum += node->right->sum;
265 }
266 }

引用了 get_sum(), leetcode::convert_bst_to_greater_tree::FriendTreeNode::left, leetcode::convert_bst_to_greater_tree::FriendTreeNode::right , 以及 leetcode::convert_bst_to_greater_tree::FriendTreeNode::sum.

被这些函数引用 convertBST() , 以及 get_sum().


该类的文档由以下文件生成: