二叉树
文章平均质量分 79
u013586251
这个作者很懒,什么都没留下…
展开
-
最近公共祖先
给定一棵二叉树,找到两个节点的最近公共父节点(LCA)。 最近公共祖先是两个节点的公共的祖先节点且具有最大深度。 4 / \ 3 7 / \ 5 6 LCA(3, 5) = 4 LCA(5, 6) = 7 LCA(6, 7) = 7 解法是:顺着一条p和q都同在一边的链子,也就是说,若P和原创 2016-03-05 16:12:32 · 177 阅读 · 0 评论 -
完全二叉树节点数
给定一棵完全二叉树的头节点head,返回这棵树的节点个数。如果完全二叉树的节点数为N,请实现时间复杂度低于O(N)的解法。 #include using namespace std; class TreeNode { public: int val; TreeNode* left; TreeNode* right; TreeNode(int val) :val(val),原创 2016-03-08 00:08:18 · 294 阅读 · 0 评论 -
B树、B-树、B+树、B*树
BST即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: BST的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命转载 2016-04-03 15:50:24 · 204 阅读 · 0 评论 -
前序遍历和中序遍历树构造二叉树
代码1: #include #include using namespace std; //Definition of TreeNode : class TreeNode { public: int val; TreeNode *left, *right; TreeNode(int val) { this->val = val; this->left = this->ri原创 2016-04-12 20:05:32 · 204 阅读 · 0 评论 -
中序遍历和后序遍历树构造二叉树
#include #include using namespace std; //Definition of TreeNode : class TreeNode { public: int val; TreeNode *left, *right; TreeNode(int val) { this->val = val; this->left = this->right =原创 2016-04-12 20:40:54 · 152 阅读 · 0 评论 -
二叉树的锯齿形层次遍历
给出一棵二叉树,返回其节点值的锯齿形层次遍历(先从左往右,下一层再从右往左,层与层之间交替进行) 样例给出一棵二叉树 {3,9,20,#,#,15,7}, 3 / \ 9 20 / \ 15 7 返回其锯齿形的层次遍历为: [ [3], [20,9], [15,7] ] #include #include #include u原创 2016-04-20 17:04:15 · 268 阅读 · 0 评论