zoukankan      html  css  js  c++  java
  • 单向链表的反转

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

    • 循环遍历
    • 递归

    代码如下:

    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;
        }
    }


    原文链接
     


     

  • 相关阅读:
    1.6 linux基础(六)
    1.5 Linux基础(五)
    1.4 linux基础(四)
    在win10中安装VB的方法
    重新拾起这个博客
    实验11-2-2 学生成绩链表处理
    实验11-1-9 藏尾诗
    实验11-1-8 查找子串
    实验11-1-6 指定位置输出字符串
    实验9-8 通讯录排序
  • 原文地址:https://www.cnblogs.com/ConstXiong/p/12159634.html
Copyright © 2011-2022 走看看