Skip to content

Commit 1554fd7

Browse files
committed
[Tree] Refactor solution to Symmetric Tree
1 parent 195813e commit 1554fd7

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

Tree/SymmetricTree.swift

+9-6
Original file line numberDiff line numberDiff line change
@@ -18,20 +18,23 @@
1818
*/
1919

2020
class SymmetricTree {
21-
func isSymmetric(root: TreeNode?) -> Bool {
21+
func isSymmetric(_ root: TreeNode?) -> Bool {
2222
guard let root = root else {
2323
return true
2424
}
25-
return _helper(root.left, root.right)
25+
26+
return isSymmetricHelper(root.left, root.right)
2627
}
2728

28-
func _helper(p: TreeNode?, _ q:TreeNode?) -> Bool {
29-
if p == nil && q == nil {
29+
private func isSymmetricHelper(_ left: TreeNode?, _ right: TreeNode?) -> Bool {
30+
if left == nil && right == nil {
3031
return true
3132
}
32-
if p == nil || q == nil || p!.val != q!.val {
33+
34+
if let left = left, let right = right, left.val == right.val {
35+
return isSymmetricHelper(left.left, right.right) && isSymmetricHelper(left.right, right.left)
36+
} else {
3337
return false
3438
}
35-
return _helper(p!.left, q!.right) && _helper(p!.right, q!.left)
3639
}
3740
}

0 commit comments

Comments
 (0)