From e87e8090dd0cc7665b727d3964c2cae7aeb5032a Mon Sep 17 00:00:00 2001 From: 0xff-dev Date: Wed, 26 Jun 2024 09:01:39 +0800 Subject: [PATCH] Add solution and test-cases for problem 965 --- .../0965.Univalued-Binary-Tree/README.md | 27 +++++++++--------- .../0965.Univalued-Binary-Tree/Solution.go | 25 ++++++++++++++-- .../Solution_test.go | 19 ++++++++---- .../unival_bst_1.png | Bin 0 -> 6961 bytes .../unival_bst_2.png | Bin 0 -> 7159 bytes 5 files changed, 49 insertions(+), 22 deletions(-) create mode 100644 leetcode/901-1000/0965.Univalued-Binary-Tree/unival_bst_1.png create mode 100644 leetcode/901-1000/0965.Univalued-Binary-Tree/unival_bst_2.png diff --git a/leetcode/901-1000/0965.Univalued-Binary-Tree/README.md b/leetcode/901-1000/0965.Univalued-Binary-Tree/README.md index 7ba028a80..9f888997f 100644 --- a/leetcode/901-1000/0965.Univalued-Binary-Tree/README.md +++ b/leetcode/901-1000/0965.Univalued-Binary-Tree/README.md @@ -1,28 +1,27 @@ # [965.Univalued 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 +A binary tree is **uni-valued** if every node in the tree has the same value. + +Given the `root` of a binary tree, return `true` if the given tree is **uni-valued**, or `false` otherwise. + +**Example 1:** -**Example 1:** +![1](./unival_bst_1.png) ``` -Input: a = "11", b = "1" -Output: "100" +Input: root = [1,1,1,1,1,null,1] +Output: true ``` -## 题意 -> ... +**Example 2:** -## 题解 +![2](./unival_bst_2.png) -### 思路1 -> ... -Univalued Binary Tree -```go ``` - +Input: root = [2,2,2,5,2] +Output: false +``` ## 结语 diff --git a/leetcode/901-1000/0965.Univalued-Binary-Tree/Solution.go b/leetcode/901-1000/0965.Univalued-Binary-Tree/Solution.go index d115ccf5e..80958c583 100644 --- a/leetcode/901-1000/0965.Univalued-Binary-Tree/Solution.go +++ b/leetcode/901-1000/0965.Univalued-Binary-Tree/Solution.go @@ -1,5 +1,26 @@ package Solution -func Solution(x bool) bool { - return x +type TreeNode struct { + Val int + Left, Right *TreeNode +} + +func Solution(root *TreeNode) bool { + if root == nil { + return true + } + ok := true + if root.Left != nil { + if root.Val != root.Left.Val { + return false + } + ok = ok && Solution(root.Left) + } + if root.Right != nil { + if root.Val != root.Right.Val { + return false + } + ok = ok && Solution(root.Right) + } + return ok } diff --git a/leetcode/901-1000/0965.Univalued-Binary-Tree/Solution_test.go b/leetcode/901-1000/0965.Univalued-Binary-Tree/Solution_test.go index 14ff50eb4..12ffd7298 100644 --- a/leetcode/901-1000/0965.Univalued-Binary-Tree/Solution_test.go +++ b/leetcode/901-1000/0965.Univalued-Binary-Tree/Solution_test.go @@ -10,12 +10,19 @@ func TestSolution(t *testing.T) { // 测试用例 cases := []struct { name string - inputs bool + inputs *TreeNode expect bool }{ - {"TestCase", true, true}, - {"TestCase", true, true}, - {"TestCase", false, false}, + {"TestCase1", &TreeNode{ + Val: 1, + Left: &TreeNode{Val: 1, Left: &TreeNode{Val: 1}, Right: &TreeNode{Val: 1}}, + Right: &TreeNode{Val: 1, Right: &TreeNode{Val: 1}}, + }, true}, + {"TestCase", &TreeNode{ + Val: 2, + Left: &TreeNode{Val: 2, Left: &TreeNode{Val: 5}, Right: &TreeNode{Val: 2}}, + Right: &TreeNode{Val: 2}, + }, false}, } // 开始测试 @@ -30,10 +37,10 @@ func TestSolution(t *testing.T) { } } -// 压力测试 +// 压力测试 func BenchmarkSolution(b *testing.B) { } -// 使用案列 +// 使用案列 func ExampleSolution() { } diff --git a/leetcode/901-1000/0965.Univalued-Binary-Tree/unival_bst_1.png b/leetcode/901-1000/0965.Univalued-Binary-Tree/unival_bst_1.png new file mode 100644 index 0000000000000000000000000000000000000000..155325f2ba62eea4b889c91cc842bd66cf647f70 GIT binary patch literal 6961 zcmY*;2RzjOAOFSK`^d^Vos6%U5fKg-mlaA#_A1#kWSqS@GBb;eWRr~Skv$?an?f8} zS^u~C|NoE2?;aj^?%wau>%CsD*Yo*$zQgZpC{vI!lR_X63bcxnHUx5o1pNP=m=L_% z4CqIL52%X*`T;R``4C%#f$vPNC_Psl2P;<(Q)f$vwY`I#rGSgMv!$iIi;aWpHvVT> z2!y!}t%Q8w`FbnkrK8S7YN($RT&2L(Zn%I^I^6O(^K^xWxm5|d1&qnsolIhuHNE8N zqI-S*+gbh_ite*{tSXA8^tUS0?P*daT86C5G@Y(_PjmLU=bx+8xL+5Se5{|8-o5UH zd2We{C*I$G2*Vsu!8-!F^+wK`w)e7#TnBK&IG4c}gLP|-0`!p`^3>3H3`^lPdFr4B zIGP$-&VwMqaL@-MkkswDaR_3JUZSP;E&n(&8_=P<${04#q zPu`H4Xfwmc?)}4dc2l_d45`G3$7mmTy zz)orUx_U#BdKkW4z%!N`)Jn?MwlsR-_f;u1tiI%Qd6;%fg&@~bviGS^FWb4jSPOVWB4K)B>u%p_iwU?-2K-lYF%!x= zL}-OK?Sn|qa&y}Z8@DvFJuMymkWt0!xnI#1RG{tkPj>l0J6dwDjDr1N-wZIa55DbbI?jIqkChFU3L1%`R3Rd-NCQf$Uq`0s|U3`DWMVCqOa{8?q+efhaz&2 zukD4N@%4^mqR1&JTkUJ#WM^{}|0#L6;uw#h!$&IwdiwZ|J$Uu*tnT$|78Y3_#*Oik z-XdSyhf+84^LhOXsljL#UaMQ_Mq>t~66qAhx+RNw6j!-WCU}(%i6~++U_xyWN+8GJ z^dInxegqvJ8WR_ki}4W-$R6wGNP?g-9AT*c=V4|&N}M!7ZKjSap~a6%Iaw&LvrsNg zRogyI<_i5tTrRdAqe`J&@gZH65q`BO@%S4QMlrM5ca#+(F zmWspTN(J>1=Q$3wykpQeya?CP??S*m7+IFd%p(3�XN?{t(haLAz~c~N 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 F{|7xY_|^ab literal 0 HcmV?d00001 diff --git a/leetcode/901-1000/0965.Univalued-Binary-Tree/unival_bst_2.png b/leetcode/901-1000/0965.Univalued-Binary-Tree/unival_bst_2.png new file mode 100644 index 0000000000000000000000000000000000000000..c7073b6519e1d8a9906d0b84acc838475dc598be GIT binary patch literal 7159 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 MD{CuND_A4{55>)P9{>OV literal 0 HcmV?d00001