package main /* * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param pRoot TreeNode类 * @return bool布尔型 */ func isSymmetrical( pRoot *TreeNode ) bool { if pRoot == nil { return true } // write code here var dfs func(leftNode, rightNode *TreeNode) bool dfs = func(leftNode, rightNode *TreeNode) bool { if leftNode == nil && rightNode == nil { return true } if (leftNode == nil && rightNode != nil) || (leftNode!=nil && rightNode == nil){ return false } if leftNode.Val != rightNode.Val { return false } return dfs(leftNode.Left, rightNode.Right) && dfs(leftNode.Right, rightNode.Left) } return dfs(pRoot.Left, pRoot.Right) }