码迷,mamicode.com
首页 > 其他好文 > 详细

反转链表

时间:2020-07-22 20:14:51      阅读:57      评论:0      收藏:0      [点我收藏+]

标签:public   while   一个   com   第一个   链表   数据   reverse   ret   

此博客链接:https://www.cnblogs.com/ping2yingshi/p/13362021.html

题目链接:

反转链表

定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。

 

示例:

输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL

题解:

        思路:

                 1.创建一个头节点,使用new ListNode()创建一个新节点数据域定义为0。

                 2.再次创建一个节点,把给的链表的头节点值放入节点的数据域中。

                 3.把第一个节点的next置空。

                 4使用头插法把链表插入新的链表中。(先取给的链表中的节点,后指向新链表的第一个节点,然后把给的节点的指针向下移)

代码:

class Solution {
    public ListNode reverseList(ListNode head) {
        if(head==null)
        return head;
       ListNode p;
       p=new ListNode(0);//头节点
       ListNode q=new ListNode(head.val);
       p.next=q;
       q.next=null;
       head=head.next;
       while(head!=null)
       {
           ListNode temp=head;
           head=head.next;
           temp.next=q;
           q=temp;
           p.next=temp;
       }
      return p.next;
    }
}

 

反转链表

标签:public   while   一个   com   第一个   链表   数据   reverse   ret   

原文地址:https://www.cnblogs.com/ping2yingshi/p/13362021.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!