链表倒数第k个节点

//============================================================================
// Name        : 链表倒数第k个节点.cpp
// Author      : Lucas
// Version     :
// Copyright   : @Lucas
// Description : 1.注意k为0的情况。  2.k超出链表长度的情况。
//============================================================================

#include <iostream>
using namespace std;

struct node {
	int data;
	node *next;
};

node* inverseKthNode(node *head, int k)
{
	if (head == NULL || k == 0)
	{
		return NULL;
	}

	node *p1 = head;
	node *p2 = head;

	for (int i = 1;i <= k-1; i++)
	{
		if (p2->next != NULL)
		{
			p2 = p2->next;
		}
		else
		{
			return NULL;
		}
	}

	while (p2->next != NULL)
	{
		p2 = p2->next;
		p1 = p1->next;
	}

	return p1;
}

int main() {
	return 0;
}
posted @ 2013-04-28 14:52  helloweworld  阅读(129)  评论(0编辑  收藏  举报