阿里云上怎么做网页网站长沙百度推广公司电话
题目链接:https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof/
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
解题思路:
定义一个虚节点,用作返回链表的头节点,然后令res.next = null
,创造出最原始的要返回的链表结构。
然后遍历原来链表,每遍历一个节点,就创造一个新的节点(这里不能直接指向源节点,即ListNode cur = head
,应该初始化一个新节点),将此节点插入到返回链表中。最后返回结果链表的next.
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val = x; }* }*/
class Solution {public ListNode reverseList(ListNode head) {ListNode res = new ListNode(-1);res.next = null;while(head != null){ListNode cur = new ListNode(head.val);cur.next = res.next;res.next = cur;head = head.next;}return res.next;}
}