206. 反转链表


反转一个单链表。

示例:
输入: 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 {
    //借鉴org
    public 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;
    }
    //org
    public 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;
    }
}

文章作者:   future
版权声明:   本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 future !
 上一篇
234. 回文链表 234. 回文链表
回文链表请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用  O(n) 时间复杂度和 O(1) 空间复杂度解决此题?解析:见
2020-09-11 future
下一篇 
21. 合并两个有序链表 21. 合并两个有序链表
合并两个有序链表将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4-
2020-09-11 future
  目录