题解 | #反转链表#
反转链表
https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca
public ListNode ReverseList(ListNode head) { if(head==null||head.next==null)return head; ListNode newNode=ReverseList(head.next); head.next.next=head; head.next=null; return newNode; }
假设有两个节点,1号节点指向2号节点,2号节点指向空。
反正算法,1号节点的下一个节点(2号节点)的下一个节点(空节点)指向1号节点,完成2号节点执行1号节点。
同时1号节点的指向空,断开指向2号节点。完成反转。
链表无法随机查找,只能从首节点找到尾节点。利用递归遍历到尾部节点,即当前节点的下一个为空。从尾节点开始指向上一个节点。