面试题16 :反转链表

来源:互联网 发布:至尊妖孽软件 编辑:程序博客网 时间:2024/06/05 10:26

题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。


代码实现:

尾插法

/*public class ListNode {    int val;    ListNode next = null;    ListNode(int val) {        this.val = val;    }}*/public class Solution {    public ListNode ReverseList(ListNode head) {        if(head == null) {            return null;        }        ListNode node = head.next;        ListNode tail = head;        head.next = null;        //尾插法        while(node != null) {            ListNode tmp = node.next;            node.next = tail;            tail = node;            node = tmp;        }        return tail;    }}