LinkedList:將二叉搜索樹轉換成雙向鏈表

public static BinTreeNode BSTToDoubleLinkedList(BinTreeNode head) {
        Queue<BinTreeNode> queue = new LinkedList<BinTreeNode>();
        inOrderToQueue(head, queue);
        head = queue.poll();
        BinTreeNode pre = head;
        head.left = null;
        while (!queue.isEmpty()) {
            BinTreeNode cur = queue.poll();
            pre.right = cur;
            cur.left = pre;
            pre = cur;
        }
        pre.right = null;
        return head;
    }
    public static void inOrderToQueue(BinTreeNode head,Queue<BinTreeNode> queue) {
        if (head == null) {
            return;
        }
        inOrderToQueue(head.left, queue);
        queue.add(head);
        inOrderToQueue(head.right, queue);
    }
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容