LeetCode112:Path Sum

正常写法

bool HasPathSum(TreeNode root, int sum) {
			bool ret=false;
			if(root==null)return false;
			if(root.left==null&&root.right==null) return root.val==sum;
			if(root.left!=null)
			{
				
				ret=ret|| HasPathSum(root.left,sum-root.val);
			}
			if(root.right!=null)
			{
				
				ret=ret|| HasPathSum(root.right,sum-root.val);
			}
			return ret;
		}

  破坏性写法

bool HasPathSum(TreeNode root, int sum) {
			bool ret=false;
			if(root==null)return false;
			if(root.left==null&&root.right==null) return root.val==sum;
			if(root.left!=null)
			{
				root.left.val+=root.val;
				ret=ret|| HasPathSum(root.left,sum);
			}
			if(root.right!=null)
			{
				root.right.val+=root.val;
				ret=ret|| HasPathSum(root.right,sum);
			}
			return ret;
		}

  在leetcode中第二种方法速度快,但是破坏了原树的值

原文地址:https://www.cnblogs.com/darksied/p/4729148.html