欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

leetcode刷题题解——206.反转链表

时间:2023-08-06
递归解决方案

public ListNode reverseList(ListNode head) { if(head==null||head.next==null) return head; ListNode newhead = reverseList(head.next); head.next.next = head; head.next = null; return newhead; }

相信函数能返回后面结点反转之后的新头结点那么返回的新头结点指向的是head.next再令head.next.next指向head,并将head.next置空即可避免无限递归,寻找递归结束条件问题解决 迭代解决方案

public ListNode reverseList(ListNode head) { ListNode newhead=null; while (head!=null){ ListNode temp = head.next; head.next = newhead; newhead = head; head = temp; } return newhead; }

设定while循环条件再定义暂存变量temp,暂存head.next,避免找不到下一结点head.next指向newhead,newhead再指向head,完成对newhead的头插入令head指向temp,即指向下一结点循环完成上述过程,即可反转链表

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。