前言
下面这些题目是在leecode上摘选的,这些题目有利于我们更深入理解二叉树,用c语言实现。
1.单值二叉树
题目链接: 单值二叉树.
思路:
遍历二叉树的每一个节点,并且让每个节点都和根节点进行比对,如果出现不同,则不是单值二叉树。
分析:
2.翻转二叉树
题目:
思路:
翻转每一颗子树的左右节点
分析:
3.相同的树
题目链接: 相同的树.
题目
解题思路:
先对比根节点是否相同,再对比两颗子树
4.对称二叉树
题目链接: 对称二叉树.
———————————————————————————————————————————————
解题思路:
判断一颗树是否对称,需要判断先判断左右孩子是否对称相等,还需要判断左孩子的左子树与右孩子的右子树是否相等,左孩子的右子树与右孩子的左子树是否相等,如果都相等,则该树为对称二叉树。
答案:
代码分析:
5.另一颗子树
题目链接: 另一颗子树.
解题思路:
判断A树是否为B树的子树,需要判断A树是否与B树中的某一子树相同,这时候需要用相同的树的函数,然后遍历B树中每一个节点,然后与A树进行比较,如果A树与B树中的某一个节点判断为相同的树,则证明A为B的子树。
代码解析:
6.二叉树的前序遍历
题目链接: 二叉树的前序遍历.
题目思路:
Q此题要保存节点,所以需要先获取节点个数,然后进行前序遍历,保存每一个节点值。
代码分析: