反转链表

àì夳堔傛蜴生んèń 2022-10-29 01:50 364阅读 0赞
  1. /** * 反转链表 * 给一条单链表,请反转整个链表,并返回反转后的链表 * */
  2. public class Test5 {
  3. /** * 这个递归函数的定义:输入链表的头节点,进行链表反转,并返回反转后的链表 * 比如链表是这样的1->2->3->4->5->6 * ListNode last = reverse(head.next);是反转2->3->4->5->6这个链表 * 反转后的结果是1->2<-3<-4<-5<-6,此时节点1还没有被反转 * head.next.next = head;head.next是2这个节点,再next是节点2指向的节点 * 所以把节点2指向的节点改成head * head.next = null;把节点1和节点2断开 * @param head * @return */
  4. static ListNode reverse(ListNode head) {
  5. if (head == null || head.next == null ) return head;
  6. ListNode last = reverse(head.next);
  7. head.next.next = head;
  8. head.next = null;
  9. return last;
  10. }
  11. }

发表评论

表情:
评论列表 (有 0 条评论,364人围观)

还没有评论,来说两句吧...

相关阅读

    相关

    题目 给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转。例如:给定L为1→2→3→4→5→6,K为3,则输出应该为3→2→1→6→5→4;如果K为4,则输出

    相关

    时间限制:1秒 空间限制:32768K 热度指数:408664 本题知识点: 链表 算法知识视频讲解 题目描述 输入一个链表,反转链表后,输出新链表的表头。