From 5e3c6344d3dab7a51413b325a850c8c8ab93711a Mon Sep 17 00:00:00 2001 From: 0xff-dev Date: Fri, 8 Nov 2024 09:15:17 +0800 Subject: [PATCH] Add solution and test-cases for problem 617 --- .../0617.Merge-Two-Binary-Trees/README.md | 31 ++++++------ .../0617.Merge-Two-Binary-Trees/Solution.go | 18 ++++++- .../Solution_test.go | 47 ++++++++++++++---- .../0617.Merge-Two-Binary-Trees/merge.jpg | Bin 0 -> 34675 bytes 4 files changed, 69 insertions(+), 27 deletions(-) create mode 100644 leetcode/601-700/0617.Merge-Two-Binary-Trees/merge.jpg diff --git a/leetcode/601-700/0617.Merge-Two-Binary-Trees/README.md b/leetcode/601-700/0617.Merge-Two-Binary-Trees/README.md index 6a40013fa..8c01cc579 100644 --- a/leetcode/601-700/0617.Merge-Two-Binary-Trees/README.md +++ b/leetcode/601-700/0617.Merge-Two-Binary-Trees/README.md @@ -1,28 +1,29 @@ # [617.Merge Two Binary Trees][title] -> [!WARNING|style:flat] -> This question is temporarily unanswered if you have good ideas. Welcome to [Create Pull Request PR](https://github.com/kylesliu/awesome-golang-algorithm) - ## Description +You are given two binary trees `root1` and `root2`. -**Example 1:** +Imagine that when you put one of them to cover the other, some nodes of the two trees are overlapped while the others are not. You need to merge the two trees into a new binary tree. The merge rule is that if two nodes overlap, then sum node values up as the new value of the merged node. Otherwise, the NOT null node will be used as the node of the new tree. -``` -Input: a = "11", b = "1" -Output: "100" -``` +Return the merged tree. + +**Note**: The merging process must start from the root nodes of both trees. -## 题意 -> ... +**Example 1:** -## 题解 +![1](./merge.jpg) -### 思路1 -> ... -Merge Two Binary Trees -```go ``` +Input: root1 = [1,3,2,5], root2 = [2,1,3,null,4,null,7] +Output: [3,4,5,5,4,null,7] +``` + +**Example 2:** +``` +Input: root1 = [1], root2 = [1,2] +Output: [2,2] +``` ## 结语 diff --git a/leetcode/601-700/0617.Merge-Two-Binary-Trees/Solution.go b/leetcode/601-700/0617.Merge-Two-Binary-Trees/Solution.go index d115ccf5e..c8b50409b 100644 --- a/leetcode/601-700/0617.Merge-Two-Binary-Trees/Solution.go +++ b/leetcode/601-700/0617.Merge-Two-Binary-Trees/Solution.go @@ -1,5 +1,19 @@ package Solution -func Solution(x bool) bool { - return x +type TreeNode struct { + Val int + Left, Right *TreeNode +} + +func Solution(root1 *TreeNode, root2 *TreeNode) *TreeNode { + if root1 == nil { + return root2 + } + if root2 == nil { + return root1 + } + r := &TreeNode{Val: root1.Val + root2.Val} + r.Left = Solution(root1.Left, root2.Left) + r.Right = Solution(root1.Right, root2.Right) + return r } diff --git a/leetcode/601-700/0617.Merge-Two-Binary-Trees/Solution_test.go b/leetcode/601-700/0617.Merge-Two-Binary-Trees/Solution_test.go index 14ff50eb4..63dd57b5d 100644 --- a/leetcode/601-700/0617.Merge-Two-Binary-Trees/Solution_test.go +++ b/leetcode/601-700/0617.Merge-Two-Binary-Trees/Solution_test.go @@ -10,30 +10,57 @@ func TestSolution(t *testing.T) { // 测试用例 cases := []struct { name string - inputs bool - expect bool + r1, r2 *TreeNode + expect *TreeNode }{ - {"TestCase", true, true}, - {"TestCase", true, true}, - {"TestCase", false, false}, + {"TestCase1", &TreeNode{ + Val: 1, + Left: &TreeNode{ + Val: 3, + Left: &TreeNode{Val: 5}, + }, + Right: &TreeNode{Val: 2}, + }, &TreeNode{ + Val: 2, + Left: &TreeNode{ + Val: 1, + Right: &TreeNode{Val: 4}, + }, + Right: &TreeNode{ + Val: 3, + Right: &TreeNode{Val: 7}, + }, + }, &TreeNode{ + Val: 3, + Left: &TreeNode{ + Val: 4, + Left: &TreeNode{Val: 5}, + Right: &TreeNode{Val: 4}, + }, + Right: &TreeNode{ + Val: 5, + Right: &TreeNode{Val: 7}, + }, + }}, + {"TestCase2", &TreeNode{Val: 1}, &TreeNode{Val: 1, Left: &TreeNode{Val: 2}}, &TreeNode{Val: 2, Left: &TreeNode{Val: 2}}}, } // 开始测试 for i, c := range cases { t.Run(c.name+" "+strconv.Itoa(i), func(t *testing.T) { - got := Solution(c.inputs) + got := Solution(c.r1, c.r2) if !reflect.DeepEqual(got, c.expect) { - t.Fatalf("expected: %v, but got: %v, with inputs: %v", - c.expect, got, c.inputs) + t.Fatalf("expected: %v, but got: %v, with inputs: %v %v", + c.expect, got, c.r1, c.r2) } }) } } -// 压力测试 +// 压力测试 func BenchmarkSolution(b *testing.B) { } -// 使用案列 +// 使用案列 func ExampleSolution() { } diff --git a/leetcode/601-700/0617.Merge-Two-Binary-Trees/merge.jpg b/leetcode/601-700/0617.Merge-Two-Binary-Trees/merge.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e5d33535a8c835e724d5dc0bdde515396576e285 GIT binary patch literal 34675 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