C++创建单链表【从键盘输入】
链表
众所周知,与数组相似,链表也是一种线性数据结构,不同的是,其通过引用字段将所有分离的元素链接在一起。分为单链表和双链表。
**单链表:**是一种通过指针串联在一起的单向线性结构,
**双链表:**每一个节点有两个指针域,一个指向下一个节点,一个指向上一个节点。双链表 既可以向前查询也可以向后查询。
从键盘输入创建单链表
在LeetCode上刷题时,常常因为链表的输入输出没有直观的显示,导致Coding的效率大打折扣,因此,最好是能直观地从键盘上输入,这样就能省去很多麻烦。
代码
int main() {
int num;
cin >> num;
ListNode* head=new ListNode(num);//创建链表头
ListNode* ptr = head;//一般不会在原链表上直接操作,创建指向head的ptr,对ptr进行操作
while (cin.get() != '\n') {
cin >> num;
ptr->next = new ListNode(num);
ptr = ptr->next;
}
while (head) {//遍历输出
if (head->next == NULL)
cout << head->val << "-> NULL";
else
cout << head->val << "-> ";
head = head->next;
}
}
我们来看看效果:
再来个206.反转链表试试。
没问题!
参考
当然,如果你想封装成函数,类似于
void createList(ListNode* pHead)
void createList(ListNode *head, vector<int> item)
你可以参考
c++ 创建链表