题解 | #反转链表#

反转链表

https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca

import java.util.*;


/*public class ListNode {
   int val;
   ListNode next = null;
   public ListNode(int val) {
    this.val = val;
   }
}*/

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param head ListNode类 
     * @return ListNode类
     */
    public ListNode ReverseList (ListNode head) {
        // write code here
        if(head == null){
            //空链表直接返回
            return head;
        }
        //遍历链表,赋值给数组
        List<Integer> middle = new ArrayList<Integer>();
        while(head!=null){
            middle.add(head.val);
            head = head.next;
        }
        //用数组的最后一个初始化结果链表
        ListNode result =new ListNode(middle.get(middle.size()-1));
        ListNode s = result;
        //从倒数第二个开始,反向遍历数组并插入初始化的链表尾部
        for(int i=middle.size()-2;i>=0;i--){
            s.next=new ListNode(middle.get(i));
            s = s.next;
        }
        return result;
    }
}

全部评论

相关推荐

04-27 15:01
早稲田大学 Java
牛客72191338...:可能是时间点的问题,四月底机会确实会相对少点,但佬这个学历摆在这,会有机会的
简历中的项目经历要怎么写
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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