题目
二叉树最长路径,输出节点
思路
前序遍历,比较每一条路径的节点和,保留最长路径
代码
static LinkedList<TreeNode> result;
static void LongPath(TreeNode root, LinkedList<TreeNode> list, int sum, int max) {
list.push(root);
sum += root.val;
if (null == root.right && null == root.left){
if (max < sum) {
result = new LinkedList<>(list);
max = sum;
}
}
if (root.left != null)
LongPath(root.left, list, sum, max);
if (root.right != null)
LongPath(root.right, list, sum, max);
list.pop();
}