标签:表达式 表达式树 3.4 定义 开始 左右 roo 3.1 循环
if n<=0 return NULL;
新建二叉树节点b,令b->data指向根节点
for p=in to in+n
if p等于根节点,停止循环
k=p-in; //k为根节点在in中的位置
递归造左子树
递归造右子树
if 树为空 返回NULL
else
左子树高度=递归左子树
右子树高度=递归右子树
比较左右子树的高度,返回(更大的高度+1)
计算叶子带权路径之和
定义全局变量WPL表示带权路径之和,length表示当前叶节点的路径长度
if b不为空
if b的左右子树同时为空
计算叶子节点b的带权路径长度,重置length为0
length++
递归左子树
递归右子树
static void tree2list_inorder(Node* root, Node*& prev, Node*& list_head)
{
if (root->left) tree2list_inorder(root->left, prev, list_head);
root->left = prev;
if (prev) prev->right = root;
prev = root;
if (list_head == NULL) list_head = root;
if (root->right) tree2list_inorder(root->right, prev, list_head);
}
Node* tree2list(Node* root)
{
Node* list_head = NULL;
Node* prev = NULL;
if (root) tree2list_inorder(root, prev, list_head);
return list_head;
}
原地址:{https://www.cnblogs.com/justin20160409/p/5438145.html}
标签:表达式 表达式树 3.4 定义 开始 左右 roo 3.1 循环
原文地址:https://www.cnblogs.com/wwwwxy128/p/8995373.html