1.链表创建
链表节点结构创建
struct ListNode
{
int val;
ListNode *next;
ListNode(int x):val(x),next(NULL){}
};
利用迭代器创建链表
using vecIter = vector<int>::iterator;
ListNode *createLinkedList(vecIter beg, vecIter end)
{
ListNode *head = beg == end ? NULL : new ListNode(*beg++);
for (ListNode *cur = head; beg != end; cur = cur->next)
cur->next = new ListNode(*beg++);
return head;
}
利用列表初始化创建
ListNode *create_linkedlist(std::initializer_list<int> lst)
{
auto iter = lst.begin();
ListNode *head = lst.size() ? new ListNode(*iter++) : NULL;
for (ListNode *cur = head; iter != lst.end(); cur = cur->next)
cur->next = new ListNode(*iter++);
return head;
}
打印(清除)链表
void printAndClear(ListNode *head)
{
while (head)
{
std::cout << head->val;
if (head->next) std::cout << "->";
ListNode *del = head;
head = head->next;
delete del;
}
std::cout << std::endl;
}