标签: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