小编Joe*_*ldi的帖子

检查二叉树是镜像还是对称

什么是用于测试树是否对称的基础算法.因为它是二叉树,我认为它将是一种递归的排序定义

正式问题如下:

如果二进制树的左右子树是相同的镜像,即二叉树是对称的,则它是自身的镜像.最好用几个例子来解释.

  1
 / \
2   2
Run Code Online (Sandbox Code Playgroud)

真正

   1
  / \
 2   2
  \
   3
Run Code Online (Sandbox Code Playgroud)

     1
   /   \
  2     2
 / \   / \
4   3 3   4
Run Code Online (Sandbox Code Playgroud)

真正

       1
     /   \
    2     2 
   / \   / \
  3   4 3   4
Run Code Online (Sandbox Code Playgroud)

       1
     /   \
    2     2
   /       \
  3         3
Run Code Online (Sandbox Code Playgroud)

真正

在选择的编程语言中,定义BTree类/ C结构和相关方法以检查树是否是镜像.对于静态类型语言,您可以假设节点值都是整数.

Class/structure definition
BTree {
  BTree left;
  BTree right;
  int value;
}
Run Code Online (Sandbox Code Playgroud)

假设调用者跟踪树的根,并在其上调用函数isMirror().

此外,如果定义一个类,如果数据元素不可公开访问,请确保提供无参数构造函数和getter/setter方法.

language-agnostic algorithm binary-tree data-structures

51
推荐指数
4
解决办法
4万
查看次数