![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二叉树的leetcode题目
文章平均质量分 61
二叉树的经典leetcode题目
shylyly_
宁可痛苦,不愿麻木
展开
-
力扣经典题目之->单值二叉树(递归判断)
单值二叉树即所有值相等的二叉树。解释:红色是递,蓝色是归。原创 2024-08-26 19:53:01 · 306 阅读 · 0 评论 -
力扣经典题目之->对称二叉树(镜像二叉树)
对称二叉树本质就是左右子树的对比,但不是左孩子和左孩子相比,右孩子和右孩子相比,这样的话就是比较时候为相同的树,而是左子树的左孩子和右子树的右孩子相比,左子树的右孩子和右子树的左孩子相比。isSymmetric函数进行就直接给isMirror函数穿左右孩子,是因为题目告知二叉树不可能为空。原创 2024-08-29 18:53:42 · 343 阅读 · 0 评论 -
用队列实现二叉树的层序遍历
当我们从队列中取出一个节点进行访问时,我们可以同时将这个节点的所有子节点加入队列的末尾。由于队列是先进先出的,所以父节点会在子节点之前被访问,这确保了我们按照树的层级从上到下逐层访问。:在层序遍历中,我们需要首先访问树的根节点,然后是根节点的所有子节点,接着是这些子节点的子节点,以此类推。队列可以保证节点按照它们被访问的顺序排队,从而确保遍历的顺序是正确的。:队列的结构允许我们方便地添加新的节点。当遍历到一个节点时,它的子节点可以直接加入到队列的末尾,无需担心会破坏队列中已有的顺序。原创 2024-08-28 16:34:05 · 604 阅读 · 0 评论 -
力扣经典题目之->二叉树的前序遍历(中序后序同理)
在第9步之前pi都是3,但是第9步之后,他回到了上一层函数,这层函数里面的pi是1++之后的2,所以pi被改变了,指向了错误的位置,如果后面还有新的节点要存进数组,3这个值就会被覆盖,而&j就避免了这种错误,不管在哪一层,他的值都是被全局改变了。红框里的 returnSize是一个int * 类型的,是一个被传过来的整形指针,它的作用就是我们要将其赋为数组的元素个数,也就是 *returnSize = 元素个数,因为传过来的是int* ,我们才能真正的改变其本身。我们要把前序遍历的元素及其顺序放进数组中。原创 2024-08-27 20:48:19 · 798 阅读 · 0 评论 -
判断一颗二叉树是否为完全二叉树
因为空节点前的节点的下一层已经被带入到队列中,不可能存在:在下一层中被带入的节点之后才会有非空,因为这个不可能的非空只能在空节点的孩子中才能逃脱检测,但是这不可能。所以当我们队列中出到NULL节点的时候,此时队列中剩下的节点,应该全都是NULL,不可能有一个非空,但凡有一个非空,那一定不是完全二叉树。非空节点是连续的,就是完全二叉树、非空节点是不连续的,就不是完全二叉树。Q1:为什么能确保出到空的时候,此时队列里面的节点个数能够反映是否为完全二叉树呢?出到NULL后,剩余的节点有非空。原创 2024-09-03 14:24:12 · 311 阅读 · 0 评论 -
力扣经典题目之->相同的树(递归判断两颗二叉树是否相同)
最后的return && 如果左边已经是假,不会在执行右边了,这是&&的性质。如果两个树都不为空,但它们的根节点的值不同,则两棵树不同,返回false。1:如果其中一个树为空,而另一个不为空,则两棵树不同,返回。如果根节点的值相同,则递归地比较左子树和右子树是否相同。:根相同,左子树相同,右子树相同 即两棵树相同,如果根相等,则递归地对左右子树进行相同的检查。3:两棵树的对应节点值不同,返回false。2:其中一棵树为空,返回false。1:两棵树都为空,返回true。),则两棵树相同,返回。原创 2024-08-27 17:15:43 · 312 阅读 · 0 评论 -
力扣经典题目之->另一颗树的子树(subRoot是否是root的子树)
中的isSameTree,直接cv即可。原创 2024-08-28 15:16:33 · 441 阅读 · 0 评论