亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

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
茶陵县| 揭东县| 康平县| 阜新| 嵩明县| 扎鲁特旗| 彩票| 曲水县| 桃源县| 寿光市| 武川县| 锦州市| 遂川县| 迁西县| 昭觉县| 涿州市| 高安市| 田东县| 聂荣县| 旬邑县| 石柱| 无极县| 敦化市| 东莞市| 永德县| 南江县| 恩平市| 泸溪县| 吉安市| 彰武县| 铜川市| 雷山县| 金乡县| 河北省| 东兰县| 通化市| 柯坪县| 阳信县| 达尔| 将乐县| 和田市|