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

溫馨提示×

在Java中如何通過children進行遞歸查詢

小樊
113
2024-09-07 12:59:01
欄目: 編程語言

在Java中,要通過children進行遞歸查詢,你可以使用遞歸方法

import java.util.ArrayList;
import java.util.List;

public class Node {
    private int id;
    private String name;
    private List<Node> children;

    public Node(int id, String name) {
        this.id = id;
        this.name = name;
        this.children = new ArrayList<>();
    }

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public List<Node> getChildren() {
        return children;
    }

    public void addChild(Node child) {
        children.add(child);
    }
}

class RecursiveSearch {
    public static void main(String[] args) {
        Node root = createSampleTree();
        int targetId = 4;
        Node result = findNodeById(root, targetId);
        if (result != null) {
            System.out.println("找到了節點: " + result.getName());
        } else {
            System.out.println("沒有找到ID為 " + targetId + " 的節點");
        }
    }

    private static Node createSampleTree() {
        Node root = new Node(1, "root");
        Node node2 = new Node(2, "node2");
        Node node3 = new Node(3, "node3");
        Node node4 = new Node(4, "node4");
        Node node5 = new Node(5, "node5");

        root.addChild(node2);
        root.addChild(node3);
        node2.addChild(node4);
        node2.addChild(node5);

        return root;
    }

    public static Node findNodeById(Node root, int targetId) {
        if (root.getId() == targetId) {
            return root;
        }

        for (Node child : root.getChildren()) {
            Node result = findNodeById(child, targetId);
            if (result != null) {
                return result;
            }
        }

        return null;
    }
}

在這個例子中,我們首先創建了一個表示樹節點的Node類。然后,我們創建了一個名為RecursiveSearch的類,其中包含一個名為findNodeById的遞歸方法。這個方法接受一個Node類型的參數root和一個整數targetId,它會在以root為根的子樹中查找具有給定ID的節點。

findNodeById方法首先檢查當前節點的ID是否與目標ID相等。如果相等,則返回當前節點。如果不相等,該方法將遍歷當前節點的所有子節點,并對每個子節點遞歸調用findNodeById方法。如果在子樹中找到了具有目標ID的節點,該方法將返回該節點。如果在整個子樹中都沒有找到具有目標ID的節點,該方法將返回null

main方法中,我們創建了一個簡單的樹結構,并調用findNodeById方法來查找具有特定ID的節點。如果找到了該節點,我們將打印其名稱;否則,我們將打印一條消息,指出沒有找到具有該ID的節點。

0
揭西县| 北碚区| 隆化县| 车险| 东至县| 贵州省| 梁平县| 漯河市| 黄山市| 湖北省| 二手房| 弥渡县| 连江县| 高清| 菏泽市| 岢岚县| 崇左市| 江陵县| 平舆县| 文登市| 南郑县| 汉中市| 西乌珠穆沁旗| 子洲县| 石柱| 定州市| 禄丰县| 贡觉县| 渭南市| 云南省| 措美县| 宁远县| 桃园市| 浑源县| 西宁市| 吴旗县| 内黄县| 阳谷县| 五峰| 敦煌市| 任丘市|