面试
文章平均质量分 55
King__Moving
这个作者很懒,什么都没留下…
展开
-
输入一个单向链表,输出该链表中倒数第 k 个结点
ListNode* CreaList() { int nValue; ListNode* Head = NULL; ListNode* ListIndex = NULL; while(cin >> nValue) { if (Head == NULL) { Head = new ListNode(); Head->nValue = nValue; ListInd原创 2015-08-27 15:33:57 · 2342 阅读 · 0 评论 -
在一个字符串中找到第一个只出现一次的字符
//如输入 abaccdeff,则输出 b void PrintFirstOneAppearOnce(char* strString) { int nTime[26]; memset(nTime, 0, sizeof(nTime)); for (int i = 0; i < strlen(strString); i++) { int nNumber = strString[i]原创 2015-08-27 18:11:54 · 595 阅读 · 0 评论 -
求镜像的二叉树
//主要思路:遍历二叉树,然后交换左右子树 void ChangeToMirror(BTreeNode* pRoot) { if (pRoot == NULL) { return; } BTreeNode* pTempNode = pRoot->pLeft; pRoot->pLeft = pRoot->pRight; pRoot->pRight = pTempNode;原创 2015-08-27 16:43:49 · 573 阅读 · 0 评论 -
判断整数序列是否是二叉查找树的后序遍历
这是一道面试题,解题的代码如下(我这里把有重复节点的序列排除了,这里的二叉树不允许有相同值得节点): bool JudgeListIsBSTreePostOrder(int* iArray, int nLeft, int nRight) { if (nLeft == nRight) { return true; } int nMidValue = iArray[nRight]; i原创 2015-08-26 22:45:46 · 781 阅读 · 0 评论 -
关于二叉树,建立、遍历、求节点最大距离
今天做了一题求二叉树节点的最大距离,顺便写了下二叉树的建立,遍历的过程。 我觉得这题的主要思想是深度遍历+动态规划,我们在深度遍历的过程中,对于某一个子树,求出左右子树叶子节点到根节点的最大距离,进而求出经过根节点的最大距离。 最后求出所有子树经过根节点的最大距离。就是这个题目的最终结果。代码如下: //二叉树的建立,以及遍历 //16 14 8 2 -1 -1 4 -1 -1 7 1 -原创 2015-08-27 12:05:31 · 713 阅读 · 0 评论 -
链表的逆置 递归实现
node* reverse( node* pNode, node*& head) { if ( (pNode == 0) || (pNode->next == 0) ) // 递归跳出条件 { head = pNode; // 将链表切断,否则会形成回环 return pNode; } node* temp = re原创 2015-09-18 19:55:44 · 620 阅读 · 0 评论