gpt4 book ai didi

java - 给定节点的定义,计算二叉树中节点的总和

转载 作者:行者123 更新时间:2023-12-01 10:41:26 24 4
gpt4 key购买 nike

class Node{ 
int value;
List<Node> childNodes;
}

上面是Node的定义,不知道如何实现二叉树的求和。

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

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

但是,我可以理解这个版本的节点,二叉树的节点和可以通过递归实现。

<小时/>
public static int sumTree(Node root) {
int sum = 0;
if (root == null) {
return 0;
}
// Line 1
for (int i = 0; i < root.childNodes.size(); i++) {
sum = sum + root.childNodes.get(i).value + sumTree(root.childNodes.get(i));
}
return sum;
}

实际上,这是一棵树而不是二叉树。这是我的代码

最佳答案

树中节点的和为:节点的值 + 左树的和 + 右树的和。

因此:

public static int sum(TreeNode node) {
if(node == null) {
return 0;
} else {
return node.getVal() + sum(node.getLeft()) + sum(node.getRight());
}
}

关于java - 给定节点的定义,计算二叉树中节点的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34385454/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com