摘要:
// 面试题56(二):数组中唯一只出现一次的数字 // 题目:在一个数组中除了一个数字只出现一次之外,其他数字都出现了三次。请 // 找出那个吃出现一次的数字。 #include int FindNumberAppearingOnce(int numbers[], int length) { if (numbers == nullptr || length = 0; --j)//... 阅读全文
摘要:
// 面试题56(一):数组中只出现一次的两个数字 // 题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序 // 找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 #include unsigned int FindFirstBitIs1(int num); bool IsBit1(int num, unsigned int indexBi... 阅读全文
摘要:
// 面试题55(二):平衡二叉树 // 题目:输入一棵二叉树的根结点,判断该树是不是平衡二叉树。如果某二叉树中 // 任意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。 #include #include "BinaryTree.h" // ====================方法1==================== //迭代的从上到下,判断每个节点是否是平衡树,... 阅读全文
摘要:
// 面试题55(一):二叉树的深度 // 题目:输入一棵二叉树的根结点,求该树的深度。从根结点到叶结点依次经过的 // 结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 //如果左右节点只有一个存在,则深度为该存在的节点的深度+1 //如果左右节点都存在,则深度为最大子节点深度+1 #include #include "BinaryTree.h" int TreeDep... 阅读全文
摘要:
// 面试题54:二叉搜索树的第k个结点 // 题目:给定一棵二叉搜索树,请找出其中的第k大的结点。 #include #include "BinaryTree.h" const BinaryTreeNode* KthNodeCore(const BinaryTreeNode* pRoot, unsigned int& k); const BinaryTreeNode* KthNode(... 阅读全文