剑指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; //逆序输出  }
复制代码

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM