2018-11-19LeetCode 339 打家劫舍3

递归法解决:

分别讨论是否包含还是不包含root的情况,然后通过回溯法解决。

具体代码如下:

/**

* Definition for a binary tree node.

* public class TreeNode {

*    int val;

*    TreeNode left;

*    TreeNode right;

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

* }

*/

class Solution {

    public int rob(TreeNode root) {

        if(root==null)

        {

            return 0;

        }

        return Math.max(robInclude(root),robExclude(root));

    }

    public int robExclude(TreeNode root)

    {

        if(root==null)

        {

            return 0;

        }

        return rob(root.left)+rob(root.right);

    }


    public int robInclude(TreeNode root)

    {

        if(root==null)

        {

            return 0;

        }

        return root.val+robExclude(root.left)+robExclude(root.right);

    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容