久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Java怎么根據前序后序構建二叉樹

145次閱讀
沒有評論

共計 1168 個字符,預計需要花費 3 分鐘才能閱讀完成。

在 Java 中,可以根據給定的前序遍歷和后序遍歷數組構建二叉樹。下面是一個示例代碼:

class TreeNode {int val;
    TreeNode left;
    TreeNode right;

    TreeNode(int val) {this.val = val;
    }
}

public class BinaryTreeBuilder {public TreeNode buildTree(int[] preOrder, int[] postOrder) {return buildTreeHelper(preOrder, postOrder, 0, preOrder.length - 1, 0, postOrder.length - 1);
    }

    private TreeNode buildTreeHelper(int[] preOrder, int[] postOrder, int preStart, int preEnd, int postStart, int postEnd) {if (preStart > preEnd || postStart > postEnd) {return null;
        }

        TreeNode root = new TreeNode(preOrder[preStart]);

        if (preStart == preEnd) {return root;
        }

        int leftRootVal = preOrder[preStart + 1];
        int leftRootIndex = postStart;
        while (postOrder[leftRootIndex] != leftRootVal) {leftRootIndex++;}

        int leftTreeSize = leftRootIndex - postStart + 1;

        root.left = buildTreeHelper(preOrder, postOrder, preStart + 1, preStart + leftTreeSize, postStart, leftRootIndex);
        root.right = buildTreeHelper(preOrder, postOrder, preStart + leftTreeSize + 1, preEnd, leftRootIndex + 1, postEnd - 1);

        return root;
    }
}

在這段代碼中,我們首先定義了一個 TreeNode 類表示二叉樹的節點。然后定義了一個 BinaryTreeBuilder 類來構建二叉樹。在 buildTree 方法中,我們調用 buildTreeHelper 方法來遞歸構建二叉樹。在 buildTreeHelper 方法中,我們首先創建根節點,并根據前序遍歷數組和后序遍歷數組的特點,找到左子樹的根節點值和左子樹的大小,然后遞歸構建左子樹和右子樹。

最后,我們可以調用 buildTree 方法來構建二叉樹,并傳入前序遍歷數組和后序遍歷數組作為參數。

丸趣 TV 網 – 提供最優質的資源集合!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2024-03-19發表,共計1168字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 电白县| 永春县| 海林市| 潢川县| 尉犁县| 大余县| 巴彦淖尔市| 霍山县| 尼勒克县| 长阳| 军事| 湖北省| 阿拉尔市| 桦甸市| 延津县| 兴海县| 秦皇岛市| 襄樊市| 宁南县| 南京市| 孝昌县| 黔西县| 静海县| 定兴县| 文水县| 根河市| 如皋市| 岢岚县| 台东市| 连山| 泸州市| 洪江市| 荥阳市| 铁力市| 牟定县| 项城市| 格尔木市| 兴安盟| 泰安市| 云林县| 宁海县|