luoheng
10/26/2019 - 9:07 AM

isSymmetric

/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */

func symmetric(left, right *TreeNode) bool {
    if left == nil && right == nil {
        return true
    }
    if left == nil && right != nil || left != nil && right == nil {
        return false
    }
    if left.Val != right.Val {
        return false
    }
    return symmetric(left.Left, right.Right) && symmetric(left.Right, right.Left)
}

func isSymmetric(root *TreeNode) bool {
    if root == nil {
        return true
    }
    return symmetric(root.Left, root.Right)
}