摘要: 第13题: 题目:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。 链表结点定义如下: struct ListNode { int m_nKey; ListNode* m_pNext; }; 思路:我用的最笨的办法,先统计长度,在遍历去找,O(2n) #includ 阅读全文
posted @ 2016-03-10 21:36 dreamOwn 阅读(262) 评论(0) 推荐(0)
摘要: 第12题 题目:求1+2+…+n, 要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。 挺有意思的题目,用&&解决if问题 #include<iostream> #include<cstdio> using namespace st 阅读全文
posted @ 2016-03-10 21:14 dreamOwn 阅读(251) 评论(0) 推荐(0)
摘要: 11.求二叉树中节点的最大距离... 如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的, 我们姑且定义"距离"为两节点之间边的个数。 写一个程序, 求一棵二叉树中相距最远的两个节点之间的距离。 错误思想:分别找左右子树到根的最深结点,相加。 错误原因:左子树上的左右子树到根的最深结点相加大 阅读全文
posted @ 2016-03-10 20:59 dreamOwn 阅读(308) 评论(0) 推荐(0)
摘要: 第10题 翻转句子中单词的顺序。 题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。 句子中单词以空 符隔开。为简单起见,标点符号和普通字母一样处理。 例如输入“I am a student.”,则输出“student. a am I”。 思路:首先将整个句子按字符翻转,然后将句 阅读全文
posted @ 2016-03-10 19:46 dreamOwn 阅读(320) 评论(0) 推荐(0)
摘要: 第9题 判断整数序列是不是二元查找树的后序遍历结果 题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。 如果是返回true,否则返回false。 例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果: 8 / \ 6 10 / \ / \ 5 7 9 1 阅读全文
posted @ 2016-03-10 19:21 dreamOwn 阅读(525) 评论(0) 推荐(0)
摘要: 第7题 微软亚院之编程 判断俩个链表是否相交 给出俩个单向链表的头指针,比如h1,h2,判断这俩个链表是否相交。 为了简化问题,我们假设俩个链表均不带环。 问题扩展: 1.如果链表可能有环列? 2.如果需要求出俩个链表相交的第一个节点列? 思路: 判断两个链表是否相交,并且求第一个节点列(无环)。 阅读全文
posted @ 2016-03-10 18:20 dreamOwn 阅读(399) 评论(0) 推荐(0)