递归在JavaScript中的应用实例

递归

适用的必要条件:①过程的描述中包含它自身②有明确的结束递归的条件。

主要思路:在每一次调用自己时,使用相同的解决问题的方法,但调用的参数每次不同(有规律的变化),使用一个终止处理(结束递归)的条件,当满足这个条件时,可得到直接解病能够终止此次递归。

例1:

给定两个二叉树,编写一个函数来检验它们是否相同。

如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。

示例1:

输入:

输入:  1   1
     / \ / \
     2 3 2 3

[1,2,3], [1,2,3]

输出: true

示例2:

输入: 1 1
     /  \
     2   2

[1,2], [1,null,2]

输出: false  (来源:leetcode.com)

var isSameTree = function(p, q) {
  if (p == null && q == null)
    return true
  if ((p == null && q != null) || (p != null && q == null))
    return false;
  return p.val == q.val && isSameTree(p.left, q.left) && isSameTree(p.right, q.right)
};

例2:

我们把符合下列属性的数组 A 称作山脉:A.length >= 3

    (来源:leetcode.com)

 

猜你喜欢

转载自www.cnblogs.com/keang001/p/11551004.html