摘要: 二叉树的深度struct BinaryTreeNode{ int m_value; BinaryTreeNode *m_left; BinaryTreeNode *m_right;};输入一颗二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。(出自:剑指offer)如果一棵树只有一个结点,它的深度为1。如果根节点只有左子树而没有右子树,那么树的深度应该是左子树的深度加1;同样如果根节点只有右子树而没有左子树,那么树的深度应该是其右子树的深度加1.如果既有右子树又有左子树,那么该树的深度是其左右子树深度的较... 阅读全文
posted @ 2013-07-03 17:10 Lee_Alvin 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 数字在排序数组中出现的次数统计一个数字在排序数组中出现的次数,例如输入排序数组{0, 1, 2, 3, 4, 4, 4, 4, 5}和数字4,由于4在这个数组中出现了4次,因此输出4。(出自:剑指offer)既然输入的数组是排序的,那么很自然地就能想到用二分查找算法。 1 #include 2 3 int getFirstK( int *data, int length, int k, int start, int end ) 4 { 5 if ( start > end ) 6 { 7 return -1; 8 } 9 int midInd... 阅读全文
posted @ 2013-07-03 16:10 Lee_Alvin 阅读(107) 评论(0) 推荐(0) 编辑