【发布时间】:2019-07-06 23:23:28
【问题描述】:
如何理解复杂的递归?我只是找到初学者级别的递归示例。我想知道在涉及复杂逻辑时如何理解递归和调用堆栈。
public Boolean recursion(int value, string name)
{
if (value > 10 && value<12)
return false;
if (value > 110)
return false;
if (value > 104 && value < 106)
return false;
return recursion(value+1,"left") || recursion(value+100,"right");
}
或者更准确地说是以下逻辑
public bool HasPathSum(TreeNode root, int sum) {
if (root == null)
return false;
if (root.val == sum && (root.left == null && root.right == null))
return true;
return HasPathSum(root.left, sum - root.val)
|| HasPathSum(root.right, sum - root.val);
}
如何理解上述示例递归函数的流程?
【问题讨论】:
标签: recursion binary-tree