再帰
必要な条件は適用されます:①のプロセスを説明して②明確なエンド再帰のために独自の条件が含まれています。
主なアイデア:場合は、すべて、自分自身を呼び出して、問題を解決するために、同じ方法を使用しますが、コールのパラメータが毎回(定期的な変更)異なっている、この条件が満たされた場合、終了処理(エンド再帰)条件を使用して、この疾患は、再帰を終了するために直接解を得ることができます。
例1:
2つのバイナリツリーを考えると、それらが同一であるかどうかを確認する関数を記述します。
2は、構造ツリーに同一であり、ノードが同じ値を持っている場合、それらは同一とみなされます。
例1:
入力:
入力:11
/ \ / \
2323
[1,2,3]、[1,2,3]
出力:真
例2:
入力:11
/ \
22
[1,2]、[1、NULL、2]
出力:偽(出典:leetcode.com)
VaRのisSameTree =関数(P、Q){
(P == nullの&& Q == nullが)場合は
trueを返します
((P == nullの&& Q!= NULL)||(P!= nullの&& Q == null)の場合)
falseを返します。
戻りp.val == q.val && isSameTree(p.left、q.left)&& isSameTree(p.right、q.right)
}。
例2:
私たちは、山と呼ばれ、配列の次の属性に準拠:A.length> = 3
(出典:leetcode.com)