剑指 Offer 24. 反转链表
发布日期:2021-05-06 23:24:45 浏览次数:18 分类:技术文章

本文共 2074 字,大约阅读时间需要 6 分钟。

package SwordOffer;/** * @Description: 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL 限制:0 <= 节点个数 <= 5000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。* @Param:  * @return:  * @Author: lvhong* @Date:  * @E-mail lvhong282@163.com*/ public class lab24easy {    class ListNode {        int val;        ListNode next;        ListNode(int x) {            val = x;        }    }    //双指针   其实可以看做返回了一个新链表    public ListNode reverseList(ListNode head) {        ListNode pre = head;        ListNode cur = null;        ListNode temp = null;        while (pre != null) {            temp = pre.next;  //暂存新链表的下一个值            pre.next = cur;  //新链表的指向与原来相反            cur = pre;// cur从null(尾结点)变为头,头依次向后            pre = temp;  //  pre跳到暂存的后一位        }        return cur;    }    //递归1:  尾递归//    public ListNode reverseList(ListNode head) {//       return reverse(head,null);  //新链表的前->后依次为入参//    }//    ListNode reverse(ListNode pre,ListNode cur){//        if(pre==null)   {return cur;}  //旧链表当前节点的下一个为空说明是最后一个节点,结束递归的条件//        ListNode temp=pre.next;  //暂存pre之后的节点,给下一个递归//        pre.next=cur;//改变指向//        return reverse(temp,pre);//    }    //递归2   积压到最后才处理//    public ListNode reverseList(ListNode head) {//        if(head==null||head.next==null){//            return head;//        }//        ListNode cur = reverseList(head.next);//        head.next.next=head;//        head.next=null;  //断开原来的前向后指向,防止循环链接//        return cur;//    }    //借用外部空间   栈//        public ListNode reverseList(ListNode head) {//            Stack
stack = new Stack<>();// while(head!=null){// stack.push(head);// head=head.next;// }// ListNode cur=stack.pop();// ListNode out =cur;// while(!stack.isEmpty()){// ListNode temp = stack.pop();// cur.next=temp;// cur=cur.next;// }// cur.next=null;// return out;// }}

 

上一篇:剑指 Offer 25. 合并两个排序的链表
下一篇:剑指 Offer 23 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2025年03月11日 00时04分05秒