题解 | #从尾到头打印链表#

从尾到头打印链表

https://www.nowcoder.com/practice/d0267f7f55b3412ba93bd35cfa8e8035

import java.util.*;
/**
*    public class ListNode {
*        int val;
*        ListNode next = null;
*
*        ListNode(int val) {
*            this.val = val;
*        }
*    }
*
*/
import java.util.ArrayList;
public class Solution {
    public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
        ArrayList<Integer> ret = new ArrayList<>();

        if(listNode==null) {
            return ret;

        }
        //插法
        ListNode cur = listNode;
        ListNode pre = null; //新头节点
         





       ListNode tmp = cur;

        while(cur!=null){
            //记录cur下一个位置
            tmp = cur.next;

            cur.next = pre; //头插
            //改变心链表头节点
            pre = cur;
            cur = tmp; //回到原链表继续头插

      


         

        }
        while(pre!=null){
            ret.add(pre.val);
            pre = pre.next;
        }


        return ret;
        
    }
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务