zoukankan      html  css  js  c++  java
  • 链表反转

    原地反转

    /**
    *    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> list = new ArrayList<>();
            if(listNode==null){
                return list;
            }
            ListNode prev = listNode;
            ListNode curr = listNode.next;
            ListNode next = curr.next;
            prev.next = null;
            
            while(curr!=null){
                next = curr.next;
                curr.next = prev;
                prev = curr;
                curr = next;
            }
            
            while(prev!=null){
                list.add(prev.val);
                prev = prev.next;
            }
            return list;
        }
    }
    

    利用 List add(0,) 方法

    /**
    *    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> list = new ArrayList<>();
            while(listNode!=null){
                list.add(0,listNode.val);
                listNode = listNode.next;
            }
            return list;
        }
    }
    
  • 相关阅读:
    OO第四次总结
    OO第三次总结
    C语言函数指针
    Java对象集合
    emacs下最牛逼的Markdown编辑方式
    OO第二次总结
    Git复习
    Java设计原则
    多线程学习笔记1
    OO第一次总结
  • 原文地址:https://www.cnblogs.com/ZCWang/p/12885229.html
Copyright © 2011-2022 走看看