销毁一颗二叉树-->Destroy(Node* root)
二叉树的很多问题都可用递归实现
//销毁一颗二叉树-->Destroy(Node* root)
void _Destory(Node* root)
{
if (root != NULL)
{
_Destory(root->_left);
_Destory(root->_right);
delete root;
}
}
具体代码实现(包含了建树,遍历及一些常见问题)
#include <iostream>
#include <assert.h>
#include <queue>
#include <Windows.h>
using namespace std;
template<class T>
struct BinaryTreeNode //构建二叉树的节点,及左右子树的指针
{
T _data; //值
BinaryTreeNode<T>* _left; //左子树
BinaryTreeNode<T>* _right; //右子树
BinaryTreeNode(const T& data) //构造
:_data(data)
, _l