- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 《程序员面试金典》--寻找二叉树中两个节点的第一个公共祖先(三种情况)
/****************************************************************************************************************题目描述:给定一颗二叉树,以及二叉树中的两个节点,找出这两个节点的第一个公共祖先节点。**************************************
2015-10-26 19:21:33 3102
原创 《程序员面试金典》--寻找二叉树中某个节点中序遍历的下一个节点
/*************************************************************************************************************题目描述:请设计一个算法,寻找二叉树中指定结点的下一个结点(即中序遍历的后继)。给定树的根结点指针TreeNode* root和结点的值int p,请返回值为p的结点的后继
2015-10-25 14:12:10 1842
原创 《程序员面试金典》--二叉查找树的判断
/************************************************************************************************************题目描述:请实现一个函数,检查一棵二叉树是否为二叉查找树。给定树的根结点指针TreeNode* root,请返回一个bool,代表该树是否为二叉查找树。*******
2015-10-24 14:55:13 1148
原创 《程序员面试金典》--输出二叉树中某一层的所有元素
题目描述:struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};struct ListNode { int val;
2015-10-23 16:23:56 2846
原创 《程序员面试金典》--图中有向路径的检查
题目描述: 对于一个有向图,请实现一个算法,找出两点之间是否存在一条路径。给定图中的两个结点的指针UndirectedGraphNode* a,UndirectedGraphNode* b(请不要在意数据类型,图是有向图),请返回一个bool,代表两点之间是否存在一条路径(a到b或b到a)。题目分析: 这个题目考察的其实是有向图的遍历,图的遍历分为深度优
2015-10-21 11:12:06 1449
原创 《程序员面试金典》--平衡二叉树的检测
题目描述: 实现一个函数,检查二叉树是否平衡,平衡的定义如下,对于树中的任意一个结点,其两颗子树的高度差不超过1。给定指向树根结点的指针TreeNode* root,请返回一个bool,代表这棵树是否平衡。题目分析:: 平衡二叉树是通过左右子树的高度来判断是否为平衡二叉树的,所以我们首先想到的是如何求一个树的高度,求一个树的高度很简单,递归求解,每次求出左右子
2015-10-06 11:25:13 1281
原创 《程序员面试金典》--狗猫收容所
题目描述: 有家动物收容所只收留猫和狗,但有特殊的收养规则,收养人有两种收养方式,第一种为直接收养所有动物中最早进入收容所的,第二种为选择收养的动物类型(猫或狗),并收养该种动物中最早进入收容所的。给定一个操作序列int[][2] ope(C++中为vector>)代表所有事件。若第一个元素为1,则代表有动物进入收容所,第二个元素为动物的编号,整数代表狗,负数代表猫;若第一个元素为2,则代
2015-10-05 16:47:53 1206
原创 《程序员面试金典》--求集合栈
题目描述:请实现一种数据结构SetOfStacks,由多个栈组成,其中每个栈的大小为size,当前一个栈填满时,新建一个栈。该数据结构应支持与普通栈相同的push和pop操作。给定一个操作序列int[][2] ope(C++为vector>),每个操作的第一个数代表操作类型,若为1,则为push操作,后一个数为应push的数字;若为2,则为pop操作,后一个数无意义。请返回一个int[
2015-10-03 13:37:11 663
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人