删除二叉树中的度数为1的所有结点
来源:互联网 发布:淘宝供销平台一件代发 编辑:程序博客网 时间:2024/04/25 09:08
要求:结点删除后其唯一的子节点代替它的位置。
这里用到了递归的方法,不断遍历每个节点的左右子树,将度数为一的结点删除。
#include <iostream>using namespace std;struct Node{int v;Node* left;Node* right;};void print_div(int p){for(int i=0; i < p; i++){cout<<"-";}}void print_tree(Node* node, int p){if(node != NULL){print_div(p);cout<<node->v<<endl;if(node->left != NULL || node->right != NULL){print_tree(node->left, p+1);print_tree(node->right, p+1);}}else{print_div(p);cout<<endl;}}void print_tree(Node* node){print_tree(node, 0);}void delete_one_degree_node(Node*& node){if(node == NULL)return;if(node->left != NULL && node->right == NULL) //只有左子树{node = node->left;delete_one_degree_node(node);}else if(node->right != NULL && node->left == NULL) //只有右子树{node = node->right;delete_one_degree_node(node);}else if(node->left != NULL && node->right != NULL) //左右子树均存在{delete_one_degree_node(node->left);delete_one_degree_node(node->right);}}int main(){Node n[10] = {0};Node* tree = n;for(int i=0; i < 10; i++){n[i].v = i;}tree[0].left = &tree[1];tree[0].right = &tree[2];tree[1].left = &tree[3];tree[1].right = &tree[4];tree[2].left = NULL;tree[2].right = &tree[6];tree[3].left = &tree[7];tree[3].right = &tree[8];tree[4].left = &tree[9];cout<<"Original:"<<endl;print_tree(tree);delete_one_degree_node(tree);cout<<"After:"<<endl;print_tree(tree);return 0;}
0 0
- 删除二叉树中的度数为1的所有结点
- 求出一个排序二叉树中结点度数为一的结点个数
- 删除二叉树中度为0的结点(即叶子结点)
- 删除二叉树结点
- 求二叉树中结点值的和为指定整数的所有路径
- 打印出二叉树中结点值的和为输入整数的所有路径
- 【31】给定一个二叉树打印出所有从根结点到叶子结点路径和为 k 的路径
- 【31】给定一个二叉树打印出所有从根结点到叶子结点路径和为 k 的路径
- 每周数据结构【1】:不带头结点删除所有值为x的节点
- 在二叉树中找值为x的结点(假设所有结点的值都不一样)
- 在二叉树中找值为x的结点(假设所有结点的值都不一样)
- 2.2删除带头结点的L中所有值为x的结点
- 设计一个递归算法,删除不带头结点的单链表中所有值为x的结点
- 二叉树求两个结点的父节点及一个结点的所有祖先结点
- 头插法,尾插法,创建单链表,然后删除所有结点值为x的结点
- 《Algorithms》——删除二叉查找树中的结点
- 二叉树的祖先结点,删除,插入,查找,前驱结点,后继结点等
- 二叉树的创建,各种遍历,寻找结点,父结点,删除结点
- 网络爬虫你知道多少?
- servlet 重定向(redirect)
- win7 安装 Android Studio
- openstack中的高可用介绍
- 使用dom4j解析XML例子
- 删除二叉树中的度数为1的所有结点
- 1 How the GNU Radio scheduler iscalled and what it does
- 使用dom4j和XPath解析XML之例子二
- net ToString格式(转载)
- 开篇
- 中文分词入门之最大匹配法
- Android ImageView 显示网络图片并下载保存
- linux系统下安装两个或多个tomcat
- 韦博士粉底液自然修饰 提升女性独有气质