首页 > 其他 > 详细

单链表反转

时间:2019-04-25 19:45:38      阅读:115      评论:0      收藏:0      [点我收藏+]

递归方法:

public Node reverse(Node head) {
    if (head == null || head.next == null)
        return head;
    Node temp = head.next;
    Node newHead = reverse(head.next);
    temp.next = head;
    head.next = null;
    return newHead;
}
//总体来说,递归法是从最后一个Node开始,在弹栈的过程中将指针顺序置换的。

遍历方法:

public static Node reverseList(Node node) {
  Node pre = null;
  Node next = null;
  while (node != null) {
      next = node.next;
      node.next = pre;
      pre = node;
      node = next;
  }
  return pre;
}
//先将下一节点纪录下来,然后让当前节点指向上一节点,再将当前节点纪录下来,再让下一节点变为当前节点。

 

单链表反转

原文:https://www.cnblogs.com/liumilk/p/10770209.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!