每周一练(22)

得到链表从尾到头的元素

 

public class Solution {
    public ArrayList<Integer> getListFromTailToHead(ListNode listNode) {
 
        ArrayList<Integer> result = new ArrayList<Integer>();
        while(listNode != null){
            int key = listNode.val;
            result.add(0, key);
            listNode = listNode.next;
        }
        return result;
    }

result.add(0, key) 在list第一个位置加入元素

 

 

递归法:

public class Solution {
 
    ArrayList<Integer> result = new ArrayList<Integer>();
    public void help(ListNode listNode){
        if(listNode!= null && listNode.next != null)
            help(listNode.next);
        if(listNode != null)
            result.add(listNode.val);
    }
    public ArrayList<Integer> gettListFromTailToHead(ListNode listNode) {
 
        help(listNode);
        return result;
    }
}

递归到最后一个元素  listNode != null && listNode.next == null

然后依次往上一个return,并添加到list

 

 

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部