D76993.CousinsinBinaryTree题目链接993.CousinsinBinaryTree题目分析在一棵二叉树中,如果两个叶子节点具有相同层数,但有不同的父节点,则这两个节点互为表亲节点。给定一棵二叉树和两个节点x和y,返回两个节点x和y是否是二叉树中的表亲节点。思路因为x和y在二叉树中是唯一的,我们可以先遍历整棵二叉树,将当前节点的值作为数组的key,将当前层数作为值存入一个数组中。遍历完成后,直接判断数组中对应的值是否相同。最终代码val=$value;}*}*/classSolution{/***@paramTreeNode$root*@paramInteger$x*@paramInteger$y*@returnBoolean*/public$data=[];公共$level=[];函数isCousins($root,$x,$y){$this->inOrder($root,0,0);返回($this->prnt[$x]!=$this->prnt[$y])&&($this->level[$x]==$this->level[$y]);}functioninOrder($root,$crnt,$level){if(is_null($root)){返回;}$this->prnt[$root->val]=$crnt;$this->level[$root->val]=$level;$级别++;$this->inOrder($root->left,$root->val,$level);$this->inOrder($root->right,$root->val,$level);}}若觉得这篇文章对你有用,欢迎用爱发资源帮忙。
