mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 03:34:02 +08:00
添加 101. 对称二叉树 go版本
This commit is contained in:
@ -363,6 +363,54 @@ Python:
|
|||||||
|
|
||||||
Go:
|
Go:
|
||||||
|
|
||||||
|
```go
|
||||||
|
/**
|
||||||
|
* Definition for a binary tree node.
|
||||||
|
* type TreeNode struct {
|
||||||
|
* Val int
|
||||||
|
* Left *TreeNode
|
||||||
|
* Right *TreeNode
|
||||||
|
* }
|
||||||
|
*/
|
||||||
|
// 递归
|
||||||
|
func defs(left *TreeNode, right *TreeNode) bool {
|
||||||
|
if left == nil && right == nil {
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
if left == nil || right == nil {
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
if left.Val != right.Val {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return defs(left.Left, right.Right) && defs(right.Left, left.Right);
|
||||||
|
}
|
||||||
|
func isSymmetric(root *TreeNode) bool {
|
||||||
|
return defs(root.Left, root.Right);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 迭代
|
||||||
|
func isSymmetric(root *TreeNode) bool {
|
||||||
|
var queue []*TreeNode;
|
||||||
|
if root != nil {
|
||||||
|
queue = append(queue, root.Left, root.Right);
|
||||||
|
}
|
||||||
|
for len(queue) > 0 {
|
||||||
|
left := queue[0];
|
||||||
|
right := queue[1];
|
||||||
|
queue = queue[2:];
|
||||||
|
if left == nil && right == nil {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if left == nil || right == nil || left.Val != right.Val {
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
queue = append(queue, left.Left, right.Right, right.Left, left.Right);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
JavaScript
|
JavaScript
|
||||||
```javascript
|
```javascript
|
||||||
|
Reference in New Issue
Block a user