点滴文字,记录成长

人在一次次自己的选择和承担中,不断完善和健全自我,健全人格。

二叉树节点和最大路径,输出节点

题目

二叉树最长路径,输出节点

思路

前序遍历,比较每一条路径的节点和,保留最长路径

代码

 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();
    }
阅读更多
个人分类: 数据结构与算法
上一篇O(1)删除链表节点
下一篇LRU实现
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭