1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| 思路: 对比当前节点的值,对比当前节点是否都有左右子节点 同时满足则使用左右子节点进行递归对比,直到没有子节点为止
代码: class TreeNode { public $val = null; /** * @var TreeNode|null */ public $left = null; /** * @var TreeNode|null */ public $right = null;
function __construct($val = 0, $left = null, $right = null) { $this->val = $val; $this->left = $left; $this->right = $right; } }
/** * @param TreeNode $p * @param TreeNode $q * * @return Boolean */ function isSameTree($p, $q) { //当前节点的值不同,返回false if ($p->val !== $q->val) { return false; }
//当前节点不存在左右子节点,且节点的值相同,返回true if ( !$p->right && !$p->left && !$q->right && !$q->left ) { return true; }
//当前节点的值相同且存在子节点,使用子节点去递归对比 return $this->isSameTree($p->right, $q->right) && $this->isSameTree($p->left, $q->left); }
|