From 6996d2c069335c7fb6dac1702c7a774fc619ac95 Mon Sep 17 00:00:00 2001 From: kkunkka Date: Mon, 4 Dec 2023 14:43:42 +0800 Subject: [PATCH] kk --- .idea/misc.xml | 2 +- src/main/java/com/dota/common/Tree.java | 4 ++++ src/main/java/com/dota/common/TreeNode.java | 20 +++++++++++++++++ src/main/java/com/dota/tree/Solution.java | 24 +++++++++++++++++++++ 4 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/dota/common/Tree.java create mode 100644 src/main/java/com/dota/common/TreeNode.java create mode 100644 src/main/java/com/dota/tree/Solution.java diff --git a/.idea/misc.xml b/.idea/misc.xml index 82dbec8..a855768 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -8,7 +8,7 @@ - + \ No newline at end of file diff --git a/src/main/java/com/dota/common/Tree.java b/src/main/java/com/dota/common/Tree.java new file mode 100644 index 0000000..4dbd8e5 --- /dev/null +++ b/src/main/java/com/dota/common/Tree.java @@ -0,0 +1,4 @@ +package com.dota.common; + +public class Tree { +} \ No newline at end of file diff --git a/src/main/java/com/dota/common/TreeNode.java b/src/main/java/com/dota/common/TreeNode.java new file mode 100644 index 0000000..7f8b7f0 --- /dev/null +++ b/src/main/java/com/dota/common/TreeNode.java @@ -0,0 +1,20 @@ +package com.dota.common; + +public class TreeNode { + public int val; + public TreeNode left; + public TreeNode right; + + TreeNode() { + } + + TreeNode(int val) { + this.val = val; + } + + TreeNode(int val, TreeNode left, TreeNode right) { + this.val = val; + this.left = left; + this.right = right; + } +} \ No newline at end of file diff --git a/src/main/java/com/dota/tree/Solution.java b/src/main/java/com/dota/tree/Solution.java new file mode 100644 index 0000000..f42d9c5 --- /dev/null +++ b/src/main/java/com/dota/tree/Solution.java @@ -0,0 +1,24 @@ +package com.dota.tree; + +import com.dota.common.TreeNode; + +// 1038. 从二叉搜索树到更大和树 +public class Solution { + int sum = 0; + + public TreeNode bstToGst(TreeNode root) { + dfs(root); + return root; + } + + void dfs(TreeNode node) { + if (node == null) { + return; + } + + dfs(node.right); + sum += node.val; + node.val = sum; + dfs(node.left); + } +}