#pragma once
#include
using namespace std;
struct ListNode{
int value;
ListNode* next;
};
class List
{
typedef ListNode node;
public:
List()
:root(NULL)
{}
~List()
{
node* f = root;
while(root)
{
f = root->next;
delete root;
root = f;
}
root = NULL;
}
void push(int _value)
{
if (NULL == root)
{
node* tmp = new node();
tmp->value = _value;
tmp->next = NULL;
root = tmp;
}
else
{
node* tmp = new node();
node* temp = root;
while (temp->next)
{
temp = temp->next;
}
temp->next = tmp;
tmp->value = _value;
tmp->next = NULL;
}
}
void ReverseL()
{
node* first = root;
node* second = root->next;
node* temp = NULL;
while (NULL != second)
{
first->next = temp;
temp = first;
first = second;
second = second->next;
}
first->next = temp;
root = first;
}
node* FindLastK(int k)
{
if (k > Lsize())
{
cout<<"超出范围"<
next;
k--;
}
while (NULL != p2)
{
p1 = p1->next;
p2 = p2->next;
}
return p1;
}
int Lsize()
{
int size = 0;
node* t = root;
while (t)
{
size++;
t = t->next;
}
return size;
}
void PrintList()
{
node* t = root;
while (t)
{
cout<
value<<"->";
t = t->next;
}
cout<<"NULL";
}
private:
node* root;
};
查找单链表倒数第K个节点和以及逆置单链表
最新推荐文章于 2022-05-20 09:58:03 发布