判断树是否相等,就是判断树中的每一个节点是否相等,根节点和根节点做比较,根节点的左子节点和左子节点作比较,右子节点和右子节点作比较,直到没有节点比较为止,中间只要一个节点不相等,就返回false,只有都相等才返回true。
这里是树结构,遍历的话只能通过递归调用遍历每一个节点以及它的左右子节点。考虑使用递归的思想。但是递归需要判断终止条件,这里终止条件就是节点为空,它的父节点已经是叶子节点了。
使用Java实现代码如下:
package com.xxx.algorithm.tree;
public class Tree {
public TreeNode root;
public void insert(int data){
TreeNode node = new TreeNode(data);
if(root==null){
root = node;
}else{
TreeNode cur = root;
TreeNode parent = null;
while(true){
parent = cur;
if(data<cur.data){
cur = cur.left;
if(cur==null){
parent.left = node;
break;
}
}else{
cur = cur.right;
if(cur==null){
parent.right = node;
break;
}
}
}
}
}
public void preOrder(TreeNode node){
if(node!&#