Как понимать сложные рекурсии?Я просто нахожу примеры рекурсии начального уровня.Я хотел знать, как понимать рекурсию и стек вызовов, когда используется сложная логика.
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);
}
Как я понимаю потокприведенный выше пример рекурсивной функции?