C++之ListNode

单链表,弄清楚可stl中list的区别

 

ListNode的结构

struct ListNode {
      int val;  //当前结点的值
      ListNode *next;  //指向下一个结点的指针
      ListNode(int x) : val(x), next(NULL) {}  //初始化当前结点值为x,指针为空
  };

如何向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; //逆序输出
   
}

 

转载于:https://www.cnblogs.com/xiaoxue126/p/9015541.html

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值