题解 | #对称的二叉树#
对称的二叉树
https://www.nowcoder.com/practice/ff05d44dfdb04e1d83bdbdab320efbcb
golang的队列实现
package main import . "nc_tools" /* * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param pRoot TreeNode类 * @return bool布尔型 */ func isSymmetrical( pRoot *TreeNode ) bool { // write code here if pRoot==nil{ return true } //双队列 q1:=[]*TreeNode{pRoot.Left} q2:=[]*TreeNode{pRoot.Right} for len(q1)!=0&&len(q2)!=0{ //出队 n1:=q1[0] n2:=q2[0] q1=q1[1:] q2=q2[1:] //判断 if n1==nil&&n2==nil{ continue }else if n1!=nil&&n2!=nil{ if n1.Val!=n2.Val{ return false }else{ q1 = append(q1, n1.Left) q1 = append(q1, n1.Right) q2 = append(q2, n2.Right) q2 = append(q2, n2.Left) } }else{ return false } } return true }