规范格式

This commit is contained in:
YDZ
2020-08-07 15:50:06 +08:00
parent 854a339abc
commit 4e11f4028a
1438 changed files with 907 additions and 924 deletions

View File

@ -0,0 +1,27 @@
package leetcode
import (
"github.com/halfrost/LeetCode-Go/structures"
)
// TreeNode define
type TreeNode = structures.TreeNode
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func invertTree(root *TreeNode) *TreeNode {
if root == nil {
return nil
}
invertTree(root.Left)
invertTree(root.Right)
root.Left, root.Right = root.Right, root.Left
return root
}

View File

@ -0,0 +1,56 @@
package leetcode
import (
"fmt"
"testing"
"github.com/halfrost/LeetCode-Go/structures"
)
type question226 struct {
para226
ans226
}
// para 是参数
// one 代表第一个参数
type para226 struct {
one []int
}
// ans 是答案
// one 代表第一个答案
type ans226 struct {
one []int
}
func Test_Problem226(t *testing.T) {
qs := []question226{
question226{
para226{[]int{}},
ans226{[]int{}},
},
question226{
para226{[]int{1}},
ans226{[]int{1}},
},
question226{
para226{[]int{4, 2, 7, 1, 3, 6, 9}},
ans226{[]int{4, 7, 2, 9, 6, 3, 1}},
},
}
fmt.Printf("------------------------Leetcode Problem 226------------------------\n")
for _, q := range qs {
_, p := q.ans226, q.para226
fmt.Printf("【input】:%v ", p)
root := structures.Ints2TreeNode(p.one)
fmt.Printf("【output】:%v \n", structures.Tree2Preorder(invertTree(root)))
}
fmt.Printf("\n\n\n")
}

View File

@ -0,0 +1,45 @@
# [226. Invert Binary Tree](https://leetcode.com/problems/invert-binary-tree/)
## 题目
Invert a binary tree.
Example:
Input:
```c
4
/ \
2 7
/ \ / \
1 3 6 9
```
Output:
```c
4
/ \
7 2
/ \ / \
9 6 3 1
```
Trivia:
This problem was inspired by this original tweet by Max Howell:
>Google: 90% of our engineers use the software you wrote (Homebrew), but you cant invert a binary tree on a whiteboard so f*** off.
## 题目大意
"经典"的反转二叉树的问题。
## 解题思路
还是用递归来解决,先递归调用反转根节点的左孩子,然后递归调用反转根节点的右孩子,然后左右交换根节点的左孩子和右孩子。