91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
巴青县| 灵石县| 乌什县| 桂东县| 鄂托克旗| 长岭县| 三原县| 阿克苏市| 买车| 镇雄县| 鄢陵县| 丰县| 和田县| 象州县| 高淳县| 北辰区| 双柏县| 宁海县| 邵阳县| 搜索| 漳平市| 同仁县| 广灵县| 荣昌县| 皋兰县| 互助| 泸西县| 游戏| 万荣县| 通河县| 六安市| 扶绥县| 峡江县| 榆树市| 苗栗县| 黔东| 城固县| 盱眙县| 淳化县| 阳西县| 惠来县|