03算法與數(shù)據(jù)結(jié)構(gòu)-創(chuàng)新互聯(lián)

單向鏈表的反轉(zhuǎn)

創(chuàng)新互聯(lián)從2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都做網(wǎng)站、成都網(wǎng)站設(shè)計網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元宜良做網(wǎng)站,已為上家服務(wù),為宜良各地企業(yè)和個人服務(wù),聯(lián)系電話:028-86922220
// 1 ->2 ->3 ->null
// 3 ->2 ->1 ->null
public static SingleNode reverse(SingleNode head) {
        SingleNode next = null;
        SingleNode pre = null;
        while (head != null) {
            // 使用next變量 將下一個節(jié)點保存下來
            next = head.getNext();
            // 然后將 head的指針指向 前一個,因為要做反轉(zhuǎn)操作
            head.setNext(pre);
            // 在開始下一次循環(huán)的時候 把當(dāng)前的這個節(jié)點保存下來
            pre = head;
            // 然后將指針 移動到下一個節(jié)點
            head = next;
        }
        // 最后因為head已經(jīng)移動到null的位置,所以要將head的前一個節(jié)點作為結(jié)果返回,然后在用變量接收這節(jié)點
        return pre;
}

雙向鏈表的反轉(zhuǎn)

public static DoubleNode reverse(DoubleNode head) {
        DoubleNode next = null;
        DoubleNode pre = null;
        while (head != null) {
            // 使用變量保留下一個節(jié)點
            next = head.getNext();
            // 后指針指向前
            head.setNext(pre);
            // 前指針指向后
            head.setPre(next);
            // 然后把當(dāng)前節(jié)點進(jìn)行記錄 放到前面
            pre = head;
            // 然后把指針向后移動
            head = next;
        }
        return pre;
    }

在單鏈表當(dāng)中刪除給定的值

public static SingleNode deleteNum(SingleNode head, String value) {
        while (head != null) {
            // 找第一個不符合的節(jié)點來作為頭
            if (!head.getValue().equals(value)) {
                break;
            }
            head = head.getNext();
        }

        SingleNode pre = head;
        SingleNode cur = head;
        while (cur != null) {
            if (cur.getValue().equals(value)) {
                // 如果相同,代表這個節(jié)點需要被刪除
                pre.setNext(cur.getNext());
            }else {
                pre = cur;
            }
            cur = cur.getNext();
        }
        return head;
    }

    public static SingleNode generateChain() {
        SingleNode node1 = new SingleNode("1");
        SingleNode node2 = new SingleNode("2");
        SingleNode node3 = new SingleNode("1");
        SingleNode node4 = new SingleNode("3");

        node1.setNext(node2);
        node2.setNext(node3);
        node3.setNext(node4);
        node4.setNext(null);
        return node1;
    }

    public static void main(String[] args) {
        SingleNode node = deleteNum(generateChain(), "1");
        while (node != null) {
            System.out.print(node.getValue() + ",");
            node = node.getNext();
        }
    }
棧和隊列

棧:先入后出 類似彈夾

隊列:先入先出 類似排隊

哈希表和有序表

在java當(dāng)中 Hashmap 就是哈希表,并且他的所有增刪改查所有操作時間復(fù)雜度都為O1

在java當(dāng)中TreeMap 就是有序表,這個有序表擁有哈希表全部的功能,并且,可以根據(jù)

key進(jìn)行排序

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

當(dāng)前標(biāo)題:03算法與數(shù)據(jù)結(jié)構(gòu)-創(chuàng)新互聯(lián)
地址分享:http://muchs.cn/article0/cdcsoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、ChatGPT、網(wǎng)站設(shè)計、品牌網(wǎng)站建設(shè)域名注冊、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司