DS二叉树--左叶子数量
题目描述
计算一颗二叉树包含的叶子结点数量。
左叶子是指它的左右孩子为空,而且它是父亲的左孩子
提示:可以用三叉链表法,也可以用现有算法对两层结点进行判断
建树方法采用“先序遍历+空树用0表示”的方法
输入
第一行输入一个整数t,表示有t个测试数据
第二行起输入二叉树先序遍历的结果,空树用字符‘0’表示,输入t行
输出
逐行输出每个二叉树的包含的左叶子数量
样例输入
样例输出
#include<iostream> #include<string> using namespace std; class BitreeNode { public:char data;BitreeNode *left;BitreeNode *right;BitreeNode():left(NULL),right(NULL){}~BitreeNode(){} }; class Bitree { private:BitreeNode *Root;int pos,count;string strtree;BitreeNode *CreateBitree();void countleaves(BitreeNode *t); public:Bitree() { count = 0; };~Bitree() {};void CreateTree(string TreeArray);void countleaves(); }; void Bitree::CreateTree(string treearray) {pos = 0;strtree.assign(treearray);Root = CreateBitree(); } BitreeNode *Bitree::CreateBitree() {BitreeNode *T;char ch;ch = strtree[pos++];if (ch == '0')T = NULL;else{T = new BitreeNode();T->data = ch;T->left = CreateBitree();T->right = CreateBitree();}return T; } void Bitree::countleaves() {countleaves(Root);cout << count << endl; } void Bitree::countleaves(BitreeNode *t) {if (t){if (t->left){if (!t->left->left && !t->left->right)count++;}countleaves(t->left);countleaves(t->right);} } int main() {int t;cin >> t;while (t--){string str;cin >> str;Bitree *tree;tree = new Bitree();tree->CreateTree(str);tree->countleaves();} }
转载于:https://www.cnblogs.com/Liu269393/p/10217295.html
DS二叉树--左叶子数量相关推荐
- [二叉树|深搜|dfs] leetcode 404 左叶子之和
[二叉树|深搜|dfs] leetcode 404 左叶子之和 1.题目 题目链接 计算给定二叉树的所有左叶子之和. 示例: 3/ \9 20/ \15 7在这个二叉树中,有两个左叶子,分别是 9 和 ...
- 二叉树的叶子结点按从左到右的顺序连成一个单链表
1.题目描述 上图中的二叉树的叶子结点,按从左到右的顺序连成的单链表如下图所示: 2.解题思路 题目要求将叶子节点按自左向右的次序连接成一个单链表,因此很容易考虑到的便是将整棵二叉树按照先序或中序或后 ...
- Suzy找到实习了吗Day 17 | 二叉树进行中:110. 平衡二叉树,257 二叉树的所有路径,404. 左叶子之和
110. 平衡二叉树 题目 判断一颗二叉树是否是平和二叉树:一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 . 我的错误trial 我通过写了一个函数(后序遍历 ...
- 【leetcode-DFS】求根节点到叶节点数字之和/二叉树的最大路径和/路径总和/左叶子之和/树的直径
文章目录 求根节点到叶节点数字之和 深度优先搜索 广度优先搜索 二叉树的最大路径和 DFS 路径总和1 深度优先搜索 广度优先搜索 路径总和2 回溯法 广度优先搜索 左叶子之和 递归 DFS 树的直径 ...
- 算法训练营 day17 二叉树 平衡二叉树 二叉树的所以路径 左叶子之和
算法训练营 day17 二叉树 平衡二叉树 二叉树的所以路径 左叶子之和 平衡二叉树 110. 平衡二叉树 - 力扣(LeetCode) 给定一个二叉树,判断它是否是高度平衡的二叉树. 本题中,一棵高 ...
- 将二叉树的叶子结点转换成单链表,并返回最左叶子结点的地址(链头)
http://blog.csdn.net/wangyangkobe/article/details/6756700 编写一个递归算法,利用叶子结点中空的 右连接指针域rchild,将所有叶子结点自左向 ...
- 算法----左叶子之和
题目 计算给定二叉树的所有左叶子之和.示例:3/ \9 20/ \15 7在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24来源:力扣(LeetCode) 链接:https://lee ...
- LeetCode 404. 左叶子之和(Sum of Left Leaves)
404. 左叶子之和 404. Sum of Left Leaves LeetCode404. Sum of Left Leaves 题目描述 计算给定二叉树的所有左叶子之和. 示例: 3/ \9 2 ...
- 404. Sum of Left Leaves 左叶子之和
计算给定二叉树的所有左叶子之和. 示例: 3/ \9 20/ \15 7在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24 DFS 判断一下,然后要么加和要么继续DFS. Code d ...
最新文章
- gradle项目打war和jar包
- java tongpaiyu danliantiao_java版的汉字转拼音程序
- django 创建mysql失败_创建表时出现Django MySQL错误
- 关于计算机网络的描述错误的是,【单选题】以下关于计算机网络定义的描述中,错误的是...
- maven项目包导不进去_IntelliJ Idea下Maven插件使用技巧
- python和java哪个好-Python和Java到底哪个更好?
- 风好大,我好冷——个人分工理解
- 极客大学架构师训练营 数据结构与算法 分布式数据库 Hadoop 第八次作业
- 微信开发者工具下载安装教程
- VS2019配置opencv教程【推荐】
- Keras:基于Python的深度学习库
- python把英语句子成分字母_python把英语句子成分字母
- python人机交互界面设计_Python-Tkinter图形化界面设计(详细教程 )
- Unimodal Array
- 人类的行为与程序计算
- ACM779-兰州烧饼
- 再见,MySQL !
- 在计算机中正确的邮件写信格式,电子邮件格式怎么写
- 一位营销总监的辞职信
- 从零学习知识图谱——01(知识图谱技术介绍)
热门文章
- ODAC(V9.5.15) 学习笔记(十七)主从模式
- 【备份恢复】Oracle 数据备份与恢复微实践
- [K/3Cloud] KSQL 关联表更新字段Update语法
- Live Writer 在oschina上的代码高亮插件推荐
- python基础入门视频-Python基础入门视频课程——笔记
- Pycharm主题:基于网上一款eyecare主题自制的Hbuilder主题Watermelon
- 题解 P2387 【[NOI2014]魔法森林】
- 如何估算大型项目的工作量
- pyplot绘图标题错误处理
- HDFS集中式缓存管理(Centralized Cache Management)