剑指offer知识点——C++之ListNode
单链表,弄清楚可stl中list的区别
ListNode的结构
struct ListNode {
int val; //当前结点的值
ListNode *next; //指向下一个结点的指针
ListNode(int x) : val(x), next(NULL) {} //初始化当前结点值为x,指针为空 //初始化支持 ListNode(int x)这种方式,即 把x赋给val,next赋值NULL。
};
如何向ListNode中插入新的结点:从键盘输入
ListNode* temp1 = new Solution::ListNode(0); //创建新元素,
ListNode* l1 = temp1; //最后的结果l1指向temp1,这样可以获取temp所接收的全部元素,而temp的指针由于每次都往下移,所以每次都更新
while ((c = getchar()) != '\n') //以空格区分各个结点的值
{
if (c != ' ')
{
ungetc(c, stdin); //把不是空格的字符丢回去
cin >> num;
Solution::ListNode* newnode = new Solution::ListNode(0);
newnode->val = num;//创建新的结点存放键盘中读入的值
newnode->next = NULL;
temp2->next = newnode;//并将其赋值给temp2
temp2 = newnode; //此处也可以写成 temp2=temp2->next,使指针指向下一个,以待接收新元素
}
}
逆序输出所有元素
void Solution::reversePrintListNode(ListNode* head)
{
if (head == nullptr) return;
cout << head->val; //顺序输出
reversePrintListNode(head->next);
cout << head->val; //逆序输出
}
带女朋友搬家新家条件不好,累到女朋友了,让女朋友受苦了,特此明志:每天学习,明年这个时候(20190812)让女朋友住上大房子,永远年轻,永远热泪盈眶,很多人都是这样,他们都把自己当成身在梦中一样,浑浑噩噩地过日子,只有痛苦或爱或危险可以让他们重新感到这个世界的真实。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步