先序遍历:根左右
中序遍历:左根右
后序遍历:左右根
二叉树的节点定义
typedef struct Node
{
DataType data;
struct Node* leftChild;
struct Node* rightChild;
}BiTreeNode;
先序遍历
void PreOrder(BiTreeNode* t)
{
if(t!=nullptr)
{
printf(t->data);
PreOrder(t->leftChild);
PreOrder(t->rightChild);
}
}
求二叉树高度
int BinaryTreeHeight(Node *node)
{
int treeHeight;
if(node==null)
{
treeHeight=0;
}
else
{
int leftHeight = BinaryTreeHeight(node->lChild);
int rightHeight = BinaryTreeHeight(node->rChild);
treeHeight = (leftHeight >= rightHeight? leftHeight:rightHeight)+1;
}
return treeHeight;
}
最下面的节点返回1,依次往上返回2,3,,,n n就是二叉树的高度