单向链表的反转

单向链表反转一般有两种实现思路:

  • 循环遍历
  • 递归

代码如下:

package constxiong.interview;import constxiong.interview.SingleLinkedList.Node;/** * 反转单向列表 *  * @author ConstXiong * @date 2019-11-06 11:04:12 */public class TestReserveLinkedList {public static void main(String[] args) {SingleLinkedList<Integer> ll = new SingleLinkedList<Integer>();ll.add(1);ll.add(2);ll.add(3);ll.add(4);ll.add(5);ll.print();reverseLinkedList(ll);System.out.println();ll.print();}public static void reverseLinkedList(SingleLinkedList<Integer> ll) {Node<Integer> first = ll.first;reverseNode(first);//reverseNodeByRecursion(first);ll.first = ll.last;ll.last = first;}/** * 循环逆转节点指针 * @param first */public static void reverseNode(Node<Integer> first) {Node<Integer> pre = null;Node<Integer> next = null;while (first != null) {next = first.next;first.next = pre;pre = first;first = next;}}/** * 递归逆转节点指针 * @param head * @return */public static Node<Integer> reverseNodeByRecursion(Node<Integer> first) {if (first == null || first.next == null) {return first;}Node<Integer> prev = reverseNodeByRecursion(first.next);first.next.next = first;first.next = null;return prev;}}

给TA打赏
共{{data.count}}人
人已打赏
Java

同样的复杂度,为什么插入排序比冒泡排序更受欢迎?

2020-7-31 3:36:40

Java

希尔排序(Shell Sort)

2020-7-31 3:40:00

本站所发布的一切源码、模板、应用等文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权。本站内容适用于DMCA政策。若您的权利被侵害,请与我们联系处理,站长 QQ: 84087680 或 点击右侧 私信:盾给网 反馈,我们将尽快处理。
⚠️
本站所发布的一切源码、模板、应用等文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权。本站内容适用于DMCA政策
若您的权利被侵害,请与我们联系处理,站长 QQ: 84087680 或 点击右侧 私信:盾给网 反馈,我们将尽快处理。
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索