zoukankan      html  css  js  c++  java
  • LeetCoded第206题题解--反转链表

    反转一个单链表。

    示例
    输入: 1->2->3->4->5->NULL
    输出: 5->4->3->2->1->NULL

    方法一:递归

    自始至终每个递归返回的都应该是最后一个节点,每次递归将head.next指向head
    在这里插入图片描述
    代码

    	public static ListNode reverseList(ListNode head) {
            if (head==null||head.next==null){
                return head;
            }
            ListNode listNode = reverseList(head.next);
            head.next.next=head;
            head.next=null;
            return listNode;
        }
    

    方法二:迭代

    使用三个指针,pre指向前一个节点,cur指向当前节点,next指向下一个节点,让cur指向pre,并向后循环操作
    在这里插入图片描述

        public static ListNode reverseList2(ListNode head) {
            ListNode pre = null;
            ListNode cur = head;
            while (cur!=null){
                ListNode next = cur.next;
                cur.next = pre;
                pre = cur;
                cur = next;
            }
            return pre;
        }
    
  • 相关阅读:
    grep 精确匹配
    @ARGV
    同时查看多个文件
    R画双y轴图
    R画饼图
    linux的sort排序
    $0
    QQ图
    Config::Std模块安装
    R语言做正态分布检验
  • 原文地址:https://www.cnblogs.com/zhangguangxiang/p/14232495.html
Copyright © 2011-2022 走看看