本文主要是介绍LeetCode(链表) --- 206反转链表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:
反转一个单链表。
示例:
输入: 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 prev = null;ListNode curr = head;while(curr!=null) {//1.临时存放下一个节点的值ListNode nextTemp = curr.next;//2.当前节点指向上一个节点curr.next = prev;//3.把当前节点存为上一个节点(方便下一次调用)prev = curr;//4.改变当前节点的值curr = nextTemp;}return prev;}
}
这篇关于LeetCode(链表) --- 206反转链表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!