链表的理解(花三分钟就可能有新的理解)

链表反转

将单链表的链接顺序反转过来,如下题:

例:输入:1->2->3->4->5,   输出:5->4->3->2->1

图中一个方块表示一个链表ListNode

为了方便理解,就想象就是ListNode1中含着一个next的ListNode,而这个next指向的是ListNode2这个整体,后面也是这样想象的。

关系如下:

ListNode l3=new ListNode(3, null);
        ListNode l2=new ListNode(2, l3);
        ListNode l1=new ListNode(1, l2);

 

就是1的后面是2,2的后面是3,······;

进行链表的反转,我们要考虑清楚,什么需要保存下来,

首先这个1(代表整个ListNode1)整体要保存起来为B,1里面的next要保存起来为A(这个A=1.next=2,2代表整个ListNode2)

于是就得到了二个关键信息A,B

要进行交换,要先交换整体,再交换内面的next

就有了如下代码

A=l1.next;

l1.next=B;

B=l1;

l1=A;

这里你要把1.next=A=2,就好理解了

我是一个小小的新手,出错了请谅解。谢谢

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值