中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

關于鏈表的拓展 基本操作

發布時間:2020-08-25 16:41:11 來源:網絡 閱讀:190 作者:涼白開dream 欄目:編程語言

一.通過X將鏈表排序;小的在前大的在后:
思考:遍歷整個鏈表,與X作比較,小的尾插在SMALL里,大的尾插在BIG 里;遍歷結束,判斷SMALL或者BIG是否為空,如果是則只返回另一個的第一個結點,

class ListNode {
    public int val;
    public ListNode next;

    public ListNode(int val, ListNode next) {
        this.val = val;
        this.next = next;
    }

    public ListNode(int val) {
        this(val, null);
    }
}

public class LinkedListInterview {
    public ListNode separateByX(ListNode head, int x) {
        ListNode sHead = null;
        ListNode sEnd = null;
        ListNode bHead = null;
        ListNode bEnd = null;

        for (ListNode cur = head; cur != null; cur = cur.next) {
            if (cur.val < x) {
                if (sHead == null) {
                    sHead = cur;
                } else {
                    sEnd.next = cur;
                }
                sEnd = cur;
            } else {//≥
                if (bHead == null) {
                    bHead = cur;
                } else {
                    bEnd.next = cur;
                }
                bEnd = cur;
            }
        }

        if (sEnd == null) {
            return bHead;
        }

        sEnd.next = bHead;
        if (bEnd != null) {
            bEnd.next = null;
        }
        return sHead;
    }

    private static ListNode createTestList() {
        ListNode n1 = new ListNode(4);
        ListNode n2 = new ListNode(5);
        ListNode n3 = new ListNode(2);
        ListNode n4 = new ListNode(7);
        ListNode n5 = new ListNode(6);
        ListNode n6 = new ListNode(3);
        ListNode n7 = new ListNode(8);
        ListNode n8 = new ListNode(1);

        n1.next = n2;
        n2.next = n3;
        n3.next = n4;
        n4.next = n5;
        n5.next = n6;
        n6.next = n7;
        n7.next = n8;

        return n1;
    }

    // 三個重要節點
    // 1. 咱創建的測試鏈表是不是出問題了?
    // 2. 咱的分離程序是不是出問題了?
    // 3. 咱的打印程序是不是出問題了?
    private static void test() {
        // 4 5 2 7 6 3 8 1
        ListNode head = createTestList();
        ListNode result = new LinkedListInterview().separateByX(head, 5);
        // 4 2 3 1 5 7 6 8
        for (ListNode cur = result; cur != null; cur = cur.next) {
            System.out.println(cur.val);
        }
    }

    public static void main(String[] args) {//主函數,調用test子函數
        test();
    }
}
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

杨浦区| 高唐县| 凤山县| 麻栗坡县| 霍州市| 怀宁县| 阳曲县| 长顺县| 龙井市| 宜丰县| 板桥市| 中方县| 永宁县| 昭苏县| 高邮市| 柘城县| 左贡县| 温宿县| 凌海市| 上栗县| 丹巴县| 延安市| 边坝县| 宝鸡市| 蓬安县| 湖北省| 吉林市| 海伦市| 永和县| 安龙县| 绍兴县| 静宁县| 肥东县| 新源县| 临泉县| 东方市| 大庆市| 贺州市| 手机| 望奎县| 黄平县|