From 2e67bd816024bc1cf662a801de69439423e8dcb4 Mon Sep 17 00:00:00 2001 From: 0xff-dev Date: Tue, 3 Oct 2023 09:59:50 +0800 Subject: [PATCH] Add solution and test-cases for problem 2196 --- .../README.md | 36 ++++++++++------- .../Solution.go | 32 ++++++++++++++- .../Solution_test.go | 37 ++++++++++++++---- .../example1drawio.png | Bin 0 -> 22849 bytes .../example2drawio.png | Bin 0 -> 13146 bytes 5 files changed, 82 insertions(+), 23 deletions(-) create mode 100644 leetcode/2101-2200/2196.Create-Binary-Tree-From-Descriptions/example1drawio.png create mode 100644 leetcode/2101-2200/2196.Create-Binary-Tree-From-Descriptions/example2drawio.png diff --git a/leetcode/2101-2200/2196.Create-Binary-Tree-From-Descriptions/README.md b/leetcode/2101-2200/2196.Create-Binary-Tree-From-Descriptions/README.md index 205d98382..288b79bf1 100755 --- a/leetcode/2101-2200/2196.Create-Binary-Tree-From-Descriptions/README.md +++ b/leetcode/2101-2200/2196.Create-Binary-Tree-From-Descriptions/README.md @@ -1,28 +1,36 @@ # [2196.Create Binary Tree From Descriptions][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 a 2D integer array `descriptions` where `descriptions[i] = [parenti, childi, isLefti]` indicates that `parenti` is the **parent** of `childi` in a **binary** tree of **unique** values. Furthermore, + +- If `isLefti == 1`, then `childi` is the left child of `parenti`. +- If `isLefti == 0`, then `childi` is the right child of `parenti`. + +Construct the binary tree described by `descriptions` and return its **root**. + +The test cases will be generated such that the binary tree is **valid**. -**Example 1:** +**Example 1:** + +![example1](./example1drawio.png) ``` -Input: a = "11", b = "1" -Output: "100" +Input: descriptions = [[20,15,1],[20,17,0],[50,20,1],[50,80,0],[80,19,1]] +Output: [50,20,80,15,17,19] +Explanation: The root node is the node with value 50 since it has no parent. +The resulting binary tree is shown in the diagram. ``` -## 题意 -> ... +**Example 2:** -## 题解 +![example2](./example2drawio.png) -### 思路1 -> ... -Create Binary Tree From Descriptions -```go ``` - +Input: descriptions = [[1,2,1],[2,3,0],[3,4,1]] +Output: [1,2,null,null,3,4] +Explanation: The root node is the node with value 1 since it has no parent. +The resulting binary tree is shown in the diagram. +``` ## 结语 diff --git a/leetcode/2101-2200/2196.Create-Binary-Tree-From-Descriptions/Solution.go b/leetcode/2101-2200/2196.Create-Binary-Tree-From-Descriptions/Solution.go index d115ccf5e..8c1f3a114 100644 --- a/leetcode/2101-2200/2196.Create-Binary-Tree-From-Descriptions/Solution.go +++ b/leetcode/2101-2200/2196.Create-Binary-Tree-From-Descriptions/Solution.go @@ -1,5 +1,33 @@ package Solution -func Solution(x bool) bool { - return x +type TreeNode struct { + Val int + Left, Right *TreeNode +} + +func Solution(descriptions [][]int) *TreeNode { + indies := [100001]*TreeNode{} + children := [100001]bool{} + for _, desc := range descriptions { + parent, child, left := desc[0], desc[1], desc[2] + children[child] = true + if indies[parent] == nil { + indies[parent] = &TreeNode{Val: parent} + } + if indies[child] == nil { + indies[child] = &TreeNode{Val: child} + } + if left == 1 { + indies[parent].Left = indies[child] + } else { + indies[parent].Right = indies[child] + } + } + for _, desc := range descriptions { + if !children[desc[0]] { + return indies[desc[0]] + } + } + + return nil } diff --git a/leetcode/2101-2200/2196.Create-Binary-Tree-From-Descriptions/Solution_test.go b/leetcode/2101-2200/2196.Create-Binary-Tree-From-Descriptions/Solution_test.go index 14ff50eb4..bb627b9b5 100644 --- a/leetcode/2101-2200/2196.Create-Binary-Tree-From-Descriptions/Solution_test.go +++ b/leetcode/2101-2200/2196.Create-Binary-Tree-From-Descriptions/Solution_test.go @@ -10,12 +10,35 @@ func TestSolution(t *testing.T) { // 测试用例 cases := []struct { name string - inputs bool - expect bool + inputs [][]int + expect *TreeNode }{ - {"TestCase", true, true}, - {"TestCase", true, true}, - {"TestCase", false, false}, + {"TestCase1", [][]int{ + {20, 15, 1}, {20, 17, 0}, {50, 20, 1}, {50, 80, 0}, {80, 19, 1}, + }, &TreeNode{ + Val: 50, + Left: &TreeNode{ + Val: 20, + Left: &TreeNode{Val: 15}, + Right: &TreeNode{Val: 17}, + }, + Right: &TreeNode{ + Val: 80, + Left: &TreeNode{Val: 19}, + }, + }}, + {"TestCase2", [][]int{ + {1, 2, 1}, {2, 3, 0}, {3, 4, 1}, + }, &TreeNode{ + Val: 1, + Left: &TreeNode{ + Val: 2, + Right: &TreeNode{ + Val: 3, + Left: &TreeNode{Val: 4}, + }, + }, + }}, } // 开始测试 @@ -30,10 +53,10 @@ func TestSolution(t *testing.T) { } } -// 压力测试 +// 压力测试 func BenchmarkSolution(b *testing.B) { } -// 使用案列 +// 使用案列 func ExampleSolution() { } diff --git a/leetcode/2101-2200/2196.Create-Binary-Tree-From-Descriptions/example1drawio.png b/leetcode/2101-2200/2196.Create-Binary-Tree-From-Descriptions/example1drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..a8cc13acfa0884dd305f08520e73eb096e160407 GIT binary patch literal 22849 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 Nqb#o>S1e=V{Xg@6wvhk; literal 0 HcmV?d00001 diff --git a/leetcode/2101-2200/2196.Create-Binary-Tree-From-Descriptions/example2drawio.png b/leetcode/2101-2200/2196.Create-Binary-Tree-From-Descriptions/example2drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..76c5db89a6891c80318bc4059a939130e3cf8e07 GIT binary patch literal 13146 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 Wh4ixI9|Hd@gQu>n1FwKuKlxu#{d(H~ literal 0 HcmV?d00001