剑指offer——反转链表

6 篇文章 0 订阅

题目描述

输入一个链表,反转链表后,输出链表的所有元素。

public class ReverseList {
     public static ListNode ReverseList(ListNode head) {
         if(head==null||head.next==null){
             return head;
         }

         ListNode cur = head;
         //定义最终输出的反转的链表
         ListNode reverse = null;
         //保存前一个结点
         ListNode pPrev = null;

         while(cur!=null){
            ListNode pNext = cur.next;
            if (pNext==null) {
                //满足条件时即链表反转完毕
                reverse = cur;
            }
            //将next指针指向前一个对象
            cur.next = pPrev;
            //将前一个对象赋值cur
            pPrev = cur;
            //cur往右移动
            cur = pNext;
         }

         return reverse;

     }

        public static void main(String[] args){
            ListNode list = new ListNode(0);
            ListNode list1 = new ListNode(1);
            ListNode list2 = new ListNode(2);
            list.next = list1;
            list1.next = list2;

            ListNode reverse = ReverseList(list);

            while (reverse!=null) {
                System.out.println(reverse.val);
                reverse = reverse.next;
            }


        }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值