刷题的时候,测试算法的时候需要经常自己建立一个线性链表的例子,这里自己造一次轮子,防止以后再造轮子.
#include<iostream>
#include<vector>
using std::vector;
using std::cout;
//定义链表
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
ListNode* getListNode(vector<int> nums) {
/*
* 函数功能:
* 输入 数组 生成 线性链表
* 例子:
* 输入: nums = { 4,5,1,9 }
* 输出: 4->5->1->9
*/
ListNode* temp = new ListNode(nums[0]);
ListNode* h = new ListNode(0);
h = temp;
for (int i = 1; i < nums.size(); i++) {
ListNode* new_one = new ListNode(nums[i]); // 申请动态内存分配,否则被压栈从而无法导出整个链表
temp->next = new_one;
temp = new_one;
}
return h;
}
void printListNode(ListNode* head) {
/*
* 功能:
* 打印线性链表
* 例子:
* 输入: nums = { 4,5,1,9 }
* 打印输出: 4->5->1->9
*/
while (head->next != NULL)
{
std::cout << head->val << "->";
head = head->next;
}
std::cout << head->val << endl;
}
/*
int main() {
vector<int> nums = { 4,5,1,9 };
auto h = getListNode(nums);
printListNode(h);
return 0;
}
*/