今日题目(剑指Offer系列)
剑指 Offer 24. 反转链表
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
示例:
示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL
解题思路:
>创建一个新的头节点,用于返回结果用 >然后用一个临时tmp节点存储遍历head的值 >每次遍历head将它的值保存到tmp中,然后tmp的指针指向新的头节点的next >新头节点的next指向tmp
Python解法:
class Solution: def reverseList(self, head: ListNode) -> ListNode: newHead=ListNode() while head!=None: tmp=ListNode(head.val) tmp.next=newHead.next; newHead.next=tmp; head=head.next; return newHead.next;
Java解法:
class Solution { public ListNode reverseList(ListNode head) { ListNode newHead=new ListNode(); while(head!=null){ ListNode tmp=new ListNode(head.val); tmp.next=newHead.next; newHead.next=tmp; head=head.next; } return newHead.next; } }