✏ Leetcode基础刷题之(101. Symmetric Tree)
.
✏ 题目描述
给定一个二叉树,判断这个二叉树是不是对称的?
✏ 题目实例
给定一个二叉树[1,2,2,3,4,4,3],这个是对称的,但是[1,2,2,null,3,null,3]不是对称的
✏ 题目分析
对于待比较的两个点,有四种情况:
1.两个点都是null的话,那么他们相等,返回true(也表示走到树的叶子节点了,直接返回)
2.如果一个点是null,另一个点不是null,那么不相等,返回false(其中的一个边已经是叶子节点了)
3.两个都不是null,但是他们不相等,直接返回false,判断条件
4.如果他们两个点(暂且成为a和b)相等(左子数和右子树),那么继续判断他们的子节点,把a的左子节点和b的右子节点进行上述的比较 把a的右子节点和b的左子节点进行比较,利用 && 来进行控制,其中一个返回false,就表示当前的二叉树不是对称的。**
✏ 最终实现代码
/**
* @param TreeNode $root
* @return Boolean
*/
function isSymmetric($root) {
if(!$root){
return true;
}
return $this->check_tree($root->left,$root->right);
}
function check_tree($x,$y){
if(!$x && !$y){
return true;
}
if(!$x || !$y || $x->val !== $y->val){
return false;
}
return $this->check_tree($x->left,$y->right) &&
$this->check_tree($x->right,$y->left);
}
💾今天的数据库(626. Exchange Seats)
题目描述
改变邻近学生的位置,比如说1和2的互换,3和四互换,5没有那么就不换.这里的话就要分情况了,如果不被二整除并且当前学生id值不大于总学生数, 说明当前的学生可以和他的邻座换,否则当前数是最后一个座位没得换了
💾最终实现sql
SELECT id,
case
when id%2 =0 then(select student from seat where id=(i.id-1))
when id%2 !=0 and id<(select count(student) from seat) then (select student from seat where id=(i.id+1))
else student
end as student
from seat i;
转载链接:https://leetcode.cn/
leetCode 
![[爱了]](/js/img/d1.gif)
![[尴尬]](/js/img/d16.gif)