摘要:
题目:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。链表结点定义如下:struct ListNode{ int m_nKey; ListNode* m_pNext;};分析:为了得到倒数第k个结点,很自然的想法是先走到链表的尾端,再从尾端回溯k步。可是输入的是单向链表,只有从前往后的指针而没有从后往前的指针。因此我们需要打开我们的思路。既然不能从尾结点开始遍历这个链表,我们还是把思路回到头结点上来。假设整个链表有n个结点,那么倒数第k个结点是从头结点开始的第n-k-1个结点(从0开始计数)。如果我们能够得到链表中结点的个数n,... 阅读全文
posted @ 2013-11-01 22:07
猿人谷
阅读(801)
评论(0)
推荐(0)
摘要:
来源:http://blog.csdn.net/v_july_v/article/details/6322882题目描述:定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部,如把字符串abcdef左旋转2位得到字符串cdefab。请实现字符串左旋转的函数。指针翻转法 咱们先来看个例子,如下:abc defghi,若要让abc移动至最后的过程可以是:abc defghi->def abcghi->def ghiabc 如此,我们可定义俩指针,p1指向ch[0],p2指向ch[m];一下过程循环m次,交换p1和p2所指元素,然后p1++, p2++;。第一步,交换abc 阅读全文
posted @ 2013-11-01 11:58
猿人谷
阅读(1174)
评论(0)
推荐(0)
浙公网安备 33010602011771号