专栏首页小林coding「leetcode二叉树系列」4 对称二叉树

「leetcode二叉树系列」4 对称二叉树

本文涉及知识点 
  • 二叉树的遍历
  • 队列的运用

二叉树的遍历和队列的相关概念前面已经介绍,忘记了的小伙伴复习后再看效果一定翻倍哟!

二叉树知识复习:[今天给二叉树加个BGM,二叉树唱歌了!]

队列知识复习:[leetcode栈队列]1 栈实现队列

1

Leetcode101 对称二叉树

给定一个二叉树,检查它是否是镜像对称的。

示例1:

例如,二叉树 [1,2,2,3,4,4,3] 是对称的。

    1
   / \
  2   2
 / \ / \
3  4 4  3
但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:
    1
   / \
  2   2
   \   \
   3    3

小蓝希望大家在此思考1分钟,

效果更好哈!

01

题目解析

  • 思路

思路阐述

如果为对称二叉树,其连续的左右子节点值是相等的。我们将两节点先入队,然后每次从队列取出两个节点,最后将其左右子节点按照相反的顺序入队。队列空则结束判断。下面画图理解下。

  • 从根节点访问,先把根节点的左右节点放入队列中。

  • 从队列取出两个元素。将左节点的左孩子与右节点的右孩子比较如下图的最左边数值为35的节点和最右边的数值为35的节点(绿色节点).

02

动画演示

小蓝希望大家能够开开心心的学习,并能得到好的offer!也可以分享给身边朋友或者文末点个在看哟。

03

代码实现

1

c++版本

2

python版本

3

java版本

本文分享自微信公众号 - 小林coding(gh_fc46cf2353fc)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 大厂面试爱问的「调度算法」,20 张图一举拿下

    然后发现,操作系统的知识点考察还是比较多的,大厂就是大厂就爱问基础知识。其中,关于操作系统的「调度算法」考察也算比较频繁。

    小林coding
  • IP 基础知识“全家桶”,45 张图一套带走

    前段时间,有读者希望我写一篇关于 IP 分类地址、子网划分等的文章,他反馈常常混淆,摸不着头脑。

    小林coding
  • C++ this指针的理解和作用

    要想理解 C++ 的 this 指针,我们可以先把下面的 C++ 代码转换成 C 代码:

    小林coding
  • [leetcode二叉树系列]4 对称二叉树

    二叉树的遍历和队列的相关概念前面已经介绍,忘记了的小伙伴复习后再看效果一定翻倍哟!

    我是程序员小贱
  • [leetcode二叉树系列]2 二叉树的层次遍历

    二叉树的遍历和队列的相关概念前面已经介绍,忘记了的小伙伴复习后再看效果一定翻倍哟!

    我是程序员小贱
  • 关于二叉树,你该了解这些!

    说道二叉树,大家对于二叉树其实都很熟悉了,本文呢我也不想教科书式的把二叉树的基础内容在啰嗦一遍,所以一下我讲的都是一些比较重点的内容。

    代码随想录
  • [leetcode二叉树系列]3 二叉树的最大深度

    二叉树的遍历和队列的相关概念前面已经介绍,忘记了的小伙伴复习后再看效果一定翻倍哟!

    我是程序员小贱
  • 数据结构严书习题6.65已知前中序,求二叉链表

    已知一棵二叉树的前序序列和中序序列分别存于两个一维数组中,试编写算法建立该二叉树的二叉链表。

    glm233
  • 现在告诉你MySQL为什么选择B+Tree呢?

    大家都知道MySQL数据库选择的是B+Tree作为索引的数据结构,那为什么会选择B+Tree呢?

    田维常
  • 面试官:来,手写一个赫夫曼树

    shengjk1

扫码关注云+社区

领取腾讯云代金券