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

溫馨提示×

java treenode怎樣處理節點合并

小樊
81
2024-11-28 08:29:39
欄目: 編程語言

在Java中,處理樹節點合并的方法因具體應用場景而異。以下是一個簡單的示例,展示了如何在二叉樹中合并兩個節點。

首先,我們定義一個簡單的二叉樹節點類:

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

    TreeNode(int x) {
        val = x;
    }
}

接下來,我們創建一個方法來合并兩個節點:

public static TreeNode mergeNodes(TreeNode node1, TreeNode node2) {
    // 如果第一個節點為空,返回第二個節點
    if (node1 == null) {
        return node2;
    }
    // 如果第二個節點為空,返回第一個節點
    if (node2 == null) {
        return node1;
    }
    // 如果兩個節點都不為空,節點值相加
    TreeNode mergedNode = new TreeNode(node1.val + node2.val);
    // 遞歸合并左子樹
    mergedNode.left = mergeNodes(node1.left, node2.left);
    // 遞歸合并右子樹
    mergedNode.right = mergeNodes(node1.right, node2.right);
    return mergedNode;
}

這個方法首先檢查兩個輸入節點是否為空。如果其中一個節點為空,則返回另一個節點。如果兩個節點都不為空,我們創建一個新的TreeNode,其值為兩個輸入節點的值之和。然后,我們遞歸地合并左子樹和右子樹,并將結果分別設置為新節點的左右子節點。最后,返回新創建的節點。

以下是一個使用此方法的示例:

public static void main(String[] args) {
    TreeNode node1 = new TreeNode(1);
    node1.left = new TreeNode(2);
    node1.right = new TreeNode(3);

    TreeNode node2 = new TreeNode(4);
    node2.left = new TreeNode(5);
    node2.right = new TreeNode(6);

    TreeNode mergedNode = mergeNodes(node1, node2);
    // 輸出合并后的樹結構
    System.out.println("Merged tree:");
    printTree(mergedNode, 0);
}

public static void printTree(TreeNode node, int level) {
    if (node != null) {
        printTree(node.right, level + 1);
        for (int i = 0; i < level; i++) {
            System.out.print("  ");
        }
        System.out.println(node.val);
        printTree(node.left, level + 1);
    }
}

這個示例創建了兩個二叉樹,并使用mergeNodes方法將它們合并。然后,我們使用printTree方法打印合并后的樹結構。

0
镇康县| 东安县| 衡山县| 星座| 鸡西市| 五常市| 疏附县| 九龙坡区| 池州市| 龙泉市| 平陆县| 双流县| 沾化县| 梅河口市| 封开县| 合江县| 浑源县| 蕲春县| 卢龙县| 宁国市| 颍上县| 鞍山市| 庆云县| 昭通市| 博湖县| 江川县| 怀化市| 邹城市| 若尔盖县| 得荣县| 漯河市| 乐陵市| 长兴县| 林口县| 合水县| 平舆县| 闽侯县| 大石桥市| 湾仔区| 开化县| 南投市|