输入一个链表,反转链表后,输出新链表的表头

输入一个链表,反转链表后,输出新链表的表头
思路:
链表的反转 等价于反转链表的指针,只要把原链表中的指针反转,便是链表的反转
比如 原链表中 head指向head.next,先把head.next保存起来(不然改变head的指向后,原链表会断开,找不到下一个节点),然后改变head指向result(新建节点),再用result表示新链表的表头
1>2>3>4
1(result) 2>3>4
1<2(result) 3>4
1<2<3(result) 4
1<2<3<4(result)

//链表节点的定义类
class ListNode {
    int val;
    ListNode next = null;
    ListNode(int val) {
        this.val = val;
    }
}
public class Solution {
    public ListNode ReverseList(ListNode head) {
        ListNode result= null; //新链表的表头
        ListNode next = null;//保存临时节点
        while (head!=null){
            next = head.next;
            head.next = result; //断掉原来head指向head.next的链,重新定义head指向result的新链
            result= head;//result向前移一位 新链表的表头是result
            head = next;//head取代原链表的head.next位置 
            
        }
        return result;
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值