本文共 948 字,大约阅读时间需要 3 分钟。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL先上代码!
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode reverseList(ListNode head) { ListNode newHead = null;//新的链表的头节点 ListNode prve = null;//当前需要反转的节点的前驱 ListNode val = head;//当前需要反转的节点 ListNode valNext; while (val != null) { valNext =val.next; if (valNext == null) { newHead = val; } val.next = prve; prve = val; val = valNext; } return newHead; }}
定义一个头节点,用来最后返回头节点的值;定义prve为需要反转的节点的前驱;定义val为需要反转的节点,要反转一个单链表,则根据下面这张图来反转。
转载地址:http://doanz.baihongyu.com/