LeetCode337打家劫舍 III(树形dp)

题目链接
LeetCode337打家劫舍 III(树形dp)_第1张图片
第一次接触到树形dp的问题
本题对于某个结点进行分类讨论
1.当前结点拿,那么当前偷到的价值就是当前结点的价值加上左结点不拿时下面结点提供的价值和右节点不拿时下面结点提供的价值
2.当前结点不拿,那么当前偷到的价值就是左结点拿或者不拿的最大价值和右节点拿或者不拿的最大价值之和
总结一下
当前节点选择偷时,那么两个孩子节点就不能选择偷了
当前节点选择不偷时,两个孩子节点只需要拿最多的钱出来就行(两个孩子节点偷不偷没关系)
我们使用一个大小为 2 的数组来表示 int[] res = new int[2] 0 代表不偷,1 代表偷

   public int rob(TreeNode root) {
   
        

你可能感兴趣的:(leetcode,二叉树,算法,数据结构,树形DP,java)