Java教程

(二)算法总结

本文主要是介绍(二)算法总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

有序表

  1. TreeMap
  2. TreeSet

哈希表

单向链表

  1. 反转单向、双向链表
public static Node reverseLinkedList(Node head) {
    if (head == null) {
        return null;
    }
    Node pre = null;
    Node next = null;
    while (head != null) {
        //先用next保存head的下一个节点的信息
        next = head.next;
        head.next = pre;
        //节点的前驱和节点都后移,继续遍历
        pre = head;
        head = next;
    }
    return pre;
}
    public static DoubleNode reverseDoubleLinkedList(DoubleNode head) {
        if (head == null) {
            return null;
        }
        DoubleNode tmp = null;
        //res的作用仅仅是记录head的上一个节点
        DoubleNode res = null;
        while (head != null) {
            //先用tmp保持后继节点,然后交换前后节点
            tmp = head.next;
            head.next = head.pre;
            head.pre = tmp;
            //记录res
            res = head;
            //head指向tmp保存的原节点的后继节点,即向后推进一个节点
            head = tmp;
        }
        return res;
    }
  1. 打印有序公共部分
  2. 回文结构【利用栈逆序打出】
这篇关于(二)算法总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!