剑指offerJZ15——反转链表。leetcode206.反转链表
反转一个单链表。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
解题思路:双指针迭代。(如图head节点当成链表的第一个节点就好了,画的时候想的还不够清楚)
实现代码:
//双指针迭代法 public ListNode reverseList(ListNode head) { ListNode previous = null; ListNode current = head; while (current != null){ //记录当前节点的下一个节点 ListNode temp = current.next; //将当前节点指向previous,相等与把当前节点反转 current.next = previous; //分别前进一个节点 previous = current; current = temp; } //最后previous指向原链表的最后一个节点,反转后的第一个节点 return previous; }
学习的博客多用于在笔记中,防止笔记过于臃肿,所以将样例及运行结果放在博客中,后以超链接的形式记录在笔记中,所以有些博文过于单薄。如果有小伙伴遇到问题欢迎评论,看到就会回复,学渣一枚,加油努力。