找到链表的倒数第K位

#include<iostream>
using namespace std;

class node{
public:
    node():value(0),next(NULL){}
    ~node(){}
    int value;
    node* next;
};///be careful this ;

node* createlist(int a[],int n)
{
 node* startnode = new node[n];
 node* ret = startnode;
 for(int i = 0;i<n;i++)
 {
     startnode[i].value = a[i];
     if(i<n-1) 
         startnode[i].next = startnode + i + 1;
 }
 while(startnode)
 {
     cout<<" "<<startnode->value;
     startnode = startnode->next;
 }
 cout<<endl;
 return ret;
}

int helper(node* nd,int k)
{
 node* cursor1 = nd;
 node* cursor2 = nd;
 while(--k)
     cursor2 = cursor2->next;
 
 while(cursor2->next)
 {
     cursor1 = cursor1->next;
     cursor2 = cursor2->next;
 }

 return cursor1->value;

}

int main()
{
    int a[] = {1,2,3,4,5,6,7,8,9};
    node * t = createlist(a,9);
    cout<<helper(t,3);
}

 

posted on 2014-05-19 16:32  berkeleysong  阅读(176)  评论(0编辑  收藏  举报

导航