算法刷题笔记-单链表节点ListNode

文章目录

  • 正文
  • 参考

正文

// 单链表节点的结构
public class ListNode {
    int val; // 链表节点的值
    ListNode next; // 下一个链表节点对象
    ListNode(int x) { val = x; } // 给链表节点赋值
}
// LeetCode 206. 反转链表
ListNode reverse(ListNode head) {
    if (head.next == null) return head;
    ListNode last = reverse(head.next);	// 新建节点last,并定义为反转后的头结点。图1所示可将last画个箭头指向头节点,这里的箭头仅用来指示头结点,不是链表的一部分。
    head.next.next = head; // 这里的意思是,head头节点的下一个节点的下一个节点为头节点head。对应图2所示将指向NULL的箭头改成了指向头结点head的箭头。为方便理解,可以直接把head.next理解成head节点指向下一个节点的指针(箭头)。
    head.next = null;
    return last;
}

算法刷题笔记-单链表节点ListNode_第1张图片
算法刷题笔记-单链表节点ListNode_第2张图片

参考

 labuladong的算法小抄

你可能感兴趣的:(面试专栏,单链表,数据结构)