[leetcode二叉树系列]4 对称二叉树

344d69c84a85bfcc2eac3c0807045139.gif


 本文涉及知识点 

  • 二叉树的遍历

  • 队列的运用

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

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

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

1Leetcode101 对称二叉树

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





示例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分钟,

效果更好哈!

0 1题目解析
  • 思路

思路阐述

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

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

c2f8b578e8badc3d5744b2622a1e166a.png

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

    607307ae034cc355b4cf2c52c36401fd.png


02 代码实现

1c++版本

4ea67d2ed7b8261ba95cda924038fb1d.jpeg

2python版本

43c57a8f63ceee2df87a3fd1af6823ce.jpeg

3java版本

29f894096c80fd8628a69cc6dd13960f.jpeg


猜你喜欢

转载自blog.51cto.com/14984904/2545488
今日推荐