天天看点

递归在JavaScript中的应用实例递归例1:例2: 

递归

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

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

例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)

转载于:https://www.cnblogs.com/keang001/p/11551004.html

继续阅读