当前位置: 首页 > 后端技术 > PHP

LeetCodeSymmetricBinaryTree

时间:2023-03-30 00:51:29 PHP

描述这是一个关于LC的简单问题,我这里使用BFS+迭代来实现。思路参考了之前学过的数据结构和算法。给定一棵二叉树,检查它是否是镜像对称的。例如,二叉树[1,2,2,3,4,4,3]是对称的。1/\22/\/\3443但是下面的[1,2,2,null,3,null,3]不是镜像对称的:1/\22\\33注意:如果你你可以使用递归和迭代的方法来解决这个问题,这将是一个加分项。解答/***二叉树节点的定义。*类TreeNode{*public$val=null;*公共$左=空;*public$right=null;*函数__construct($value){$this->val=$value;}*}*/classSolution{/***@paramTreeNode$root*@returnBoolean*/functionisSymmetric($root){$queue=new\SplQueue();$queue->enqueue($root->left);$queue->enqueue($root->right);while(!$queue->isEmpty()){$left=$queue->dequeue();$right=$queue->dequeue();如果($left&&$right&&$left->val==$right->val){$queue->enqueue($left->left);$queue->enqueue($right->right);$queue->enqueue($left->right);$queue->enqueue($right->left);}elseif($left&&!$right){返回假;}否则(!$left&&$right){返回false;}elseif($left->val!=$right->val){returnfalse;}}返回真;}}