数据结构——二叉树的基础练习题(单值二叉树,翻转二叉树,相同的树,对称二叉树,另一颗子树,二叉树的前序遍历)

数据结构——二叉树的基础练习题(单值二叉树,翻转二叉树,相同的树,对称二叉树,另一颗子树,二叉树的前序遍历)_第1张图片

二叉树复习题

  • 前言
  • 1.单值二叉树
  • 2.翻转二叉树
  • 3.相同的树
  • 4.对称二叉树
  • 5.另一颗子树
  • 6.二叉树的前序遍历

前言

下面这些题目是在leecode上摘选的,这些题目有利于我们更深入理解二叉树,用c语言实现。

1.单值二叉树

题目链接: 单值二叉树.
数据结构——二叉树的基础练习题(单值二叉树,翻转二叉树,相同的树,对称二叉树,另一颗子树,二叉树的前序遍历)_第2张图片
思路:

遍历二叉树的每一个节点,并且让每个节点都和根节点进行比对,如果出现不同,则不是单值二叉树。

数据结构——二叉树的基础练习题(单值二叉树,翻转二叉树,相同的树,对称二叉树,另一颗子树,二叉树的前序遍历)_第3张图片

数据结构——二叉树的基础练习题(单值二叉树,翻转二叉树,相同的树,对称二叉树,另一颗子树,二叉树的前序遍历)_第4张图片

分析:

数据结构——二叉树的基础练习题(单值二叉树,翻转二叉树,相同的树,对称二叉树,另一颗子树,二叉树的前序遍历)_第5张图片

2.翻转二叉树

题目:
数据结构——二叉树的基础练习题(单值二叉树,翻转二叉树,相同的树,对称二叉树,另一颗子树,二叉树的前序遍历)_第6张图片
思路:

翻转每一颗子树的左右节点

数据结构——二叉树的基础练习题(单值二叉树,翻转二叉树,相同的树,对称二叉树,另一颗子树,二叉树的前序遍历)_第7张图片

数据结构——二叉树的基础练习题(单值二叉树,翻转二叉树,相同的树,对称二叉树,另一颗子树,二叉树的前序遍历)_第8张图片

分析:
数据结构——二叉树的基础练习题(单值二叉树,翻转二叉树,相同的树,对称二叉树,另一颗子树,二叉树的前序遍历)_第9张图片

3.相同的树

题目链接: 相同的树.

题目
数据结构——二叉树的基础练习题(单值二叉树,翻转二叉树,相同的树,对称二叉树,另一颗子树,二叉树的前序遍历)_第10张图片
解题思路:

先对比根节点是否相同,再对比两颗子树

数据结构——二叉树的基础练习题(单值二叉树,翻转二叉树,相同的树,对称二叉树,另一颗子树,二叉树的前序遍历)_第11张图片
数据结构——二叉树的基础练习题(单值二叉树,翻转二叉树,相同的树,对称二叉树,另一颗子树,二叉树的前序遍历)_第12张图片

4.对称二叉树

题目链接: 对称二叉树.
数据结构——二叉树的基础练习题(单值二叉树,翻转二叉树,相同的树,对称二叉树,另一颗子树,二叉树的前序遍历)_第13张图片
———————————————————————————————————————————————
解题思路:

判断一颗树是否对称,需要判断先判断左右孩子是否对称相等,还需要判断左孩子的左子树与右孩子的右子树是否相等,左孩子的右子树与右孩子的左子树是否相等,如果都相等,则该树为对称二叉树。

答案:

数据结构——二叉树的基础练习题(单值二叉树,翻转二叉树,相同的树,对称二叉树,另一颗子树,二叉树的前序遍历)_第14张图片
代码分析:
数据结构——二叉树的基础练习题(单值二叉树,翻转二叉树,相同的树,对称二叉树,另一颗子树,二叉树的前序遍历)_第15张图片

5.另一颗子树

题目链接: 另一颗子树.
数据结构——二叉树的基础练习题(单值二叉树,翻转二叉树,相同的树,对称二叉树,另一颗子树,二叉树的前序遍历)_第16张图片
解题思路:

判断A树是否为B树的子树,需要判断A树是否与B树中的某一子树相同,这时候需要用相同的树的函数,然后遍历B树中每一个节点,然后与A树进行比较,如果A树与B树中的某一个节点判断为相同的树,则证明A为B的子树。
数据结构——二叉树的基础练习题(单值二叉树,翻转二叉树,相同的树,对称二叉树,另一颗子树,二叉树的前序遍历)_第17张图片
代码解析:
数据结构——二叉树的基础练习题(单值二叉树,翻转二叉树,相同的树,对称二叉树,另一颗子树,二叉树的前序遍历)_第18张图片

6.二叉树的前序遍历

题目链接: 二叉树的前序遍历.

数据结构——二叉树的基础练习题(单值二叉树,翻转二叉树,相同的树,对称二叉树,另一颗子树,二叉树的前序遍历)_第19张图片
题目思路:

Q此题要保存节点,所以需要先获取节点个数,然后进行前序遍历,保存每一个节点值。

代码分析:

数据结构——二叉树的基础练习题(单值二叉树,翻转二叉树,相同的树,对称二叉树,另一颗子树,二叉树的前序遍历)_第20张图片

你可能感兴趣的:(二叉树,数据结构,算法,面试,c语言)