首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
IT公司100题-11-求二叉树中节点的最大距离
】的更多相关文章
IT公司100题-11-求二叉树中节点的最大距离
问题描述: 写程序,求一棵二叉树中相距最远的两个节点之间的距离. 10/ \6 14/ \ / \4 8 12 16 分析: 二叉树中最远的两个节点,要么是根和一个叶子节点,要么是两个叶子节点. 代码实现: // 11.cc #include <iostream> using namespace std; typedef struct BSTreeNode { int data; BSTreeNode *left; BSTreeNode *righ…
IT公司100题-35- 求一个矩阵中最大的二维矩阵(元素和最大)
问题描述: 求一个矩阵中最大的二维矩阵(元素和最大).如: 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 中最大的是: 4 5 9 10 分析: 2*2子数组的最大和.遍历求和,时间复杂度为O(mn). 代码实现: // 35.cc #include <iostream> #include <climits> using namespace std; ], int m, int n) { int max_sum = INT_MIN; int sum; ; i…
IT公司100题-10-翻转句子中单词的顺序
问题描述: 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变. 句子中单词以空格符隔开.为简单起见,标点符号和普通字母一样处理. 例如输入“Hello world!”,则输出“world! Hello”. 分析: 先翻转各个单词,然后整体翻转即可. 参考代码: // 10.cc #include <iostream> #include <cstring> #include <string> using namespace std; void r…
数据结构 - 求二叉树中结点的最大距离(C++)
// ------BTreeMaxNodeLength.cpp------ #include <iostream> using namespace std; template <class T> struct BTNode { // 左孩子 BTNode<T> *lChild; // 右孩子 BTNode<T> *rChild; // 该结点的值 T data; // 左子树最长距离 int leftSubTreeMaxLength; // 右子树最长距离…
求二叉树中第K层结点的个数
一,问题描述 构建一棵二叉树(不一定是二叉查找树),求出该二叉树中第K层中的结点个数(根结点为第0层) 二,二叉树的构建 定义一个BinaryTree类来表示二叉树,二叉树BinaryTree 又是由各个结点组成的,因此需要定义一个结点类BinaryNode,BinaryNode作为BinaryTree的内部类. 此外,在BinaryTree中需要一定一个BinaryNode属性来表示树的根结点. public class BinaryTree<T extends Comparable<? s…
求二叉树第K层的节点个数+求二叉树叶子节点的个数
size_t _FindLeafSize(Node* root) //求二叉树叶子节点的个数 { //static size_t count = 0; if (root == NULL) return 0; if (root->_left == NULL&&root->_right == NULL); return 1; return _FindLeafSize(root->_right) +…
IT公司100题-13-求链表中倒数第k个结点
问题描述: 输入一个单向链表,输出该链表中倒数第k个结点.链表倒数第0个节点为NULL. struct list_node { int data; list_node* next; }; 分析: 方法1: 首先计算出链表中节点的个数n,然后倒数第k个节点,为正数n-k+1个节点. 需要遍历链表2次. 方法1代码实现: // 13_1.cc #include <iostream> using namespace std; struct list_node { int data; list_nod…
IT公司100题-4-在二元树中找出和为某一值的所有路径
问题描述: 输入一个整数和一棵二元树.从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径.打印出和与输入整数相等的所有路径. 例如输入整数30和如下二元树 14 / \ 5 16 / \ 3 11 则打印出两条路径:14, 16 和14, 5, 11. 二元树节点的数据结构定义为: typedef struct BSTree { int data; BSTree* left; BSTree* right; } tree_node; 在遍历树的过程中,使用stack保存所走过的路…
IT公司100题-28-整数的二进制表示中1的个数
问题描述: 输入一个整数n,求n的二进制表示中,一共有多少个1.例如n=8,二进制表示为00001000,二进制表示中有1个1. 分析: 如果一个数n不为0,那么n-1的二进制表示,与n的二进制表示相比,n的二进制表示最右边的1变为0,而最右边的1所对应的0全部变为1.其余位不受影响. 例如:n的二进制表示为****1000,则n-1的二进制表示为****0111,则n&(n-1)的二进制表示为****0000.将n二进制表示中最右边的1去掉了. 将n赋值为n&(n-1),继续循环…
IT公司100题-25-求字符串中的最长数字串
问题描述: 实现一个函数,求出字符串中的连续最长数字串.例如输入”12345cbf3456″,输出”12345″. 函数原型为: void conti_num_max( const char * src, char * dest); dest保存最长数字串,返回void. 分析: 遍历一遍字符串,记录起始位置和长度即可. 代码实现: // 25.cc #include <iostream> #include <cstring> using namespace std; void…