摘要:
题目:输入两个递增的排序的链表,合并这两个链表并使新链表中的节点仍然是按照递增排序的。例如链表1链表2合并为链表3.1 List1:1->3->5->723 List2:2->4->6->84 5 List3:1->2->3->4->5->6->7->8链表结点定义如下:1 struct ListN... 阅读全文
摘要:
题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后的头结点链表结点定义如下:1 struct ListNode2 {3 int m_nKey;4 ListNode* m_pNext;5 }其实反转链表主要是链表指针的操作,一定要很清楚才行。其实在面试题5,从尾到头... 阅读全文
摘要:
题目:输入一个链表,输出该链表的倒数第K个结点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个节点。例如有一个链表有6个节点,从头节点开始他们的值依次是1,2,3,4,5,6.这个链表的倒数第三个节点是值为4的节点。这个题目常规情况下我们都是考虑先从链表的头遍历到链表的尾,然后... 阅读全文
摘要:
题目:输入一个整数数组,实现一个函数来调整该数组中的数字的顺序,使得所有的奇数位于数组的前半部门,所有的偶数位于数组的后半部门。这一题一看其实是很简单的,当然在不考虑效率的情况可以这样考虑我们将数组从前开始索引只要发现偶数这将偶数取出来并且将偶数后面的元素全部前移一个然后将偶数插入到最后,这样扫描一... 阅读全文
摘要:
题目:给定单向链表的头指针和一个节点指针,定义一个函数在O(1)时间删除该节点。链表节点与函数的定义如下。通常我们删除某个节点都是从头开始遍历到需要删除节点的前一个节点。然后使得该节点的next指向删除节点的next即可,这样看来删除一个节点的复杂度为O(n)然而我们其实遍历的目的只是想获取想要删除... 阅读全文
摘要:
题目:输入数字n,按照打印出从1最大的n位10进制数。比如3,则打印出1、2、3一直到最大的3位数即9991.你觉得如果面试会有这么简单的题,那只能说明你---太天真。2.n=3尚可,如果n=30 300呢有这样的内置数据类型能包括这么大的数吗?3.说白了,这道题就是考察用字符串模拟大数。算法思想如... 阅读全文
摘要:
题目:实现函数double Power(double base,int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数的问题.这道题看似很简单:然而需要考虑的方面到不少:1.如何处理指数为负数,将负数当成正数处理 对结果求倒2.当指数为负数的时候并且底数为0... 阅读全文
摘要:
题目:请实现一个函数,输入一个函数,输出该数二进制表示中1的个数。例如把9表示成二进制是1001,有2位是1.因此如果输入9,该函数输出2.这道题最典型的方法就是用移位统计,就比如统计9的二进制1个数:1.9的二进制位1001,9-1的二进制位1000.2.两者做与运算,结果为1表示最后一位为1,否... 阅读全文