From 4f4914a1371c91ec4b7a5b613dd5e8003e0aab71 Mon Sep 17 00:00:00 2001 From: 0xff-dev Date: Wed, 31 Jul 2024 09:16:21 +0800 Subject: [PATCH] Add solution and test-cases for problem 993 --- .../0993.Cousins-in-Binary-Tree/1.png | Bin 0 -> 15157 bytes .../0993.Cousins-in-Binary-Tree/2.png | Bin 0 -> 19341 bytes .../0993.Cousins-in-Binary-Tree/3.png | Bin 0 -> 14999 bytes .../0993.Cousins-in-Binary-Tree/README.md | 36 +++++++++----- .../0993.Cousins-in-Binary-Tree/Solution.go | 34 ++++++++++++- .../Solution_test.go | 45 ++++++++++++++---- 6 files changed, 91 insertions(+), 24 deletions(-) create mode 100644 leetcode/901-1000/0993.Cousins-in-Binary-Tree/1.png create mode 100644 leetcode/901-1000/0993.Cousins-in-Binary-Tree/2.png create mode 100644 leetcode/901-1000/0993.Cousins-in-Binary-Tree/3.png diff --git a/leetcode/901-1000/0993.Cousins-in-Binary-Tree/1.png b/leetcode/901-1000/0993.Cousins-in-Binary-Tree/1.png new file mode 100644 index 0000000000000000000000000000000000000000..5d4c50ae450f32b6c900f504b96dfe2051ea90fb GIT binary patch literal 15157 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 z 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 Dyh(F# literal 0 HcmV?d00001 diff --git a/leetcode/901-1000/0993.Cousins-in-Binary-Tree/README.md b/leetcode/901-1000/0993.Cousins-in-Binary-Tree/README.md index 452ed5ecd..fac67ce16 100644 --- a/leetcode/901-1000/0993.Cousins-in-Binary-Tree/README.md +++ b/leetcode/901-1000/0993.Cousins-in-Binary-Tree/README.md @@ -1,28 +1,38 @@ # [993.Cousins in Binary Tree][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 +Given the `root` of a binary tree with unique values and the values of two different nodes of the tree `x` and `y`, return `true` if the nodes corresponding to the values `x` and `y` in the tree are **cousins**, or `false` otherwise. + +Two nodes of a binary tree are **cousins** if they have the same depth with different parents. + +Note that in a binary tree, the root node is at the depth `0`, and children of each depth `k` node are at the depth `k + 1`. -**Example 1:** +**Example 1:** + +![1](./1.png) ``` -Input: a = "11", b = "1" -Output: "100" +Input: root = [1,2,3,4], x = 4, y = 3 +Output: false ``` -## 题意 -> ... +**Example 2:** -## 题解 +![2](./2.png) -### 思路1 -> ... -Cousins in Binary Tree -```go +``` +Input: root = [1,2,3,null,4,null,5], x = 5, y = 4 +Output: true ``` +**Example 3:** + +![3](./3.png) + +``` +Input: root = [1,2,3,null,4], x = 2, y = 3 +Output: false +``` ## 结语 diff --git a/leetcode/901-1000/0993.Cousins-in-Binary-Tree/Solution.go b/leetcode/901-1000/0993.Cousins-in-Binary-Tree/Solution.go index d115ccf5e..beb38ed9f 100644 --- a/leetcode/901-1000/0993.Cousins-in-Binary-Tree/Solution.go +++ b/leetcode/901-1000/0993.Cousins-in-Binary-Tree/Solution.go @@ -1,5 +1,35 @@ package Solution -func Solution(x bool) bool { - return x +type TreeNode struct { + Val int + Left, Right *TreeNode +} + +func Solution(root *TreeNode, x int, y int) bool { + var ( + xnode *TreeNode + ynode *TreeNode + xd, yd int + ) + var dfs func(*TreeNode, *TreeNode, int) + dfs = func(fa, tree *TreeNode, dep int) { + if tree == nil { + return + } + if tree.Val == x { + xnode = fa + xd = dep + } + if tree.Val == y { + ynode = fa + yd = dep + } + dfs(tree, tree.Left, dep+1) + dfs(tree, tree.Right, dep+1) + } + dfs(nil, root, 0) + if xd != yd { + return false + } + return xnode != ynode } diff --git a/leetcode/901-1000/0993.Cousins-in-Binary-Tree/Solution_test.go b/leetcode/901-1000/0993.Cousins-in-Binary-Tree/Solution_test.go index 14ff50eb4..7921dae51 100644 --- a/leetcode/901-1000/0993.Cousins-in-Binary-Tree/Solution_test.go +++ b/leetcode/901-1000/0993.Cousins-in-Binary-Tree/Solution_test.go @@ -10,30 +10,57 @@ func TestSolution(t *testing.T) { // 测试用例 cases := []struct { name string - inputs bool + tree *TreeNode + x, y int expect bool }{ - {"TestCase", true, true}, - {"TestCase", true, true}, - {"TestCase", false, false}, + {"TestCase1", &TreeNode{ + Val: 1, + Left: &TreeNode{ + Val: 2, + Left: &TreeNode{Val: 4}, + }, + Right: &TreeNode{Val: 3}, + }, 4, 3, false}, + {"TestCase2", &TreeNode{ + Val: 1, + Left: &TreeNode{ + Val: 2, + Right: &TreeNode{Val: 4}, + }, + Right: &TreeNode{ + Val: 3, + Right: &TreeNode{Val: 5}, + }, + }, 5, 4, true}, + {"TestCase3", &TreeNode{ + Val: 1, + Left: &TreeNode{ + Val: 2, + Right: &TreeNode{ + Val: 4, + }, + }, + Right: &TreeNode{Val: 3}, + }, 2, 3, false}, } // 开始测试 for i, c := range cases { t.Run(c.name+" "+strconv.Itoa(i), func(t *testing.T) { - got := Solution(c.inputs) + got := Solution(c.tree, c.x, c.y) 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 %v", + c.expect, got, c.tree, c.x, c.y) } }) } } -// 压力测试 +// 压力测试 func BenchmarkSolution(b *testing.B) { } -// 使用案列 +// 使用案列 func ExampleSolution() { }