内容简介:在二叉树中,若两个叶子节点的层数相同,但具有不同的父节点,那么这两个节点互为cousin节点。给定一个二叉树及x、y两个节点,返回x、y两个节点在二叉树中,是否互为cousin节点。
D76 993. Cousins in Binary Tree
题目链接
题目分析
在二叉树中,若两个叶子节点的层数相同,但具有不同的父节点,那么这两个节点互为cousin节点。
给定一个二叉树及x、y两个节点,返回x、y两个节点在二叉树中,是否互为cousin节点。
思路
因为x和y在二叉树中唯一,故我们可已先遍历整个二叉树,把当前节点的值作为数组的键,把当前的层数作为值,存进一个数组中。
遍历完成后,直接判断数组中对应的值是否相同即可。
最终代码
<?php /** * Definition for a binary tree node. * class TreeNode { * public $val = null; * public $left = null; * public $right = null; * function __construct($value) { $this->val = $value; } * } */ class Solution { /** * @param TreeNode $root * @param Integer $x * @param Integer $y * @return Boolean */ public $data = []; public $level = []; function isCousins($root, $x, $y) { $this->inOrder($root, 0, 0); return ($this->prnt[$x] != $this->prnt[$y]) && ($this->level[$x] == $this->level[$y]); } function inOrder($root, $crnt, $level){ if(is_null($root)){ return; } $this->prnt[$root->val] = $crnt; $this->level[$root->val] = $level; $level++; $this->inOrder($root->left, $root->val, $level); $this->inOrder($root->right, $root->val, $level); } }
若觉得本文章对你有用,欢迎用 爱发电 资助。
以上所述就是小编给大家介绍的《Leetcode PHP题解--D76 993. Cousins in Binary Tree》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Java RESTful Web Service实战
韩陆 / 机械工业出版社 / 2014-10-1 / 69.00
国内首本完整、深度地讲解如何基于Java标准规范实现REST风格的Web服务的专著,阿里巴巴Java技术专家12年开发经验结晶,3位业内著名技术专家联袂推荐!不仅深刻解读了最新的JAX-RS标准和其API设计,以及Jersey的使用要点和实现原理,而且系统讲解了REST的基本理论,更重要的是从实践角度深度讲解了如何基于Jersey实现完整的、安全的、高性能的REST式的Web服务。 《Jav......一起来看看 《Java RESTful Web Service实战》 这本书的介绍吧!
随机密码生成器
多种字符组合密码
HSV CMYK 转换工具
HSV CMYK互换工具