This commit is contained in:
2022-06-09 15:45:14 +01:00
parent 70fa350da8
commit 14b51882bb
13 changed files with 408 additions and 0 deletions

38
symmetric-tree/sol.go Normal file
View File

@@ -0,0 +1,38 @@
package main
type TreeNode struct {
Val int
Left *TreeNode
Right *TreeNode
}
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func isSymmetric(root *TreeNode) bool {
if root == nil {
return true
}
queue := []*TreeNode{root}
for len(queue) != 0 {
l := len(queue)
current := queue
queue = queue[l:]
for idx, node := range current {
if (node == nil && current[l-idx-1] != nil) ||
(node != nil && current[l-idx-1] == nil) ||
(node != nil && node.Val != current[l-idx-1].Val) {
return false
}
if node != nil {
queue = append(queue, node.Left, node.Right)
}
}
}
return true
}