反转一个单链表。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
进阶:
你可以迭代或递归地反转链表。你能否用两种方法解决这道题?
作者:力扣 (LeetCode)
链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xnnhm6/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val = x; }* }*/class Solution {//借鉴orgpublic ListNode reverseList1(ListNode head) {if(head == null||head.next==null){return head;}ListNode p = reverseList(head.next);head.next.next =head;head.next=null;return p;}//orgpublic ListNode reverseList(ListNode head) {if(head == null){return null;}ListNode pre=null;ListNode cur=head;ListNode next=cur.next;// pre.next=null;// cur.next=pre;while(cur !=null){//&& next !=null// pre.next=pre;next=cur.next;cur.next=pre;pre =cur;cur =next;//next=next.next;}return pre;}}
