关于if的使用

今天突然发现一个严重的问题

\(if()\)中的顺序很重要。

我们在一个\(dfs\)中,就像这道题:

P5018

我们在\(check\)函数中,因为是一个递归,所以在if中先要判断好当前节点才能去进行递归。
就像这一行:

if(l!=-1&&r!=-1&&a[l]==a[r]&&check(L[l],R[r])&&check(L[r],R[l]))

如果这里我们把\(check\)写到前面,就先进行了递归,那么此时\(l\)\(r\)的值都改变了,就不可能对当前节点进行判断了!!!!!

警钟长鸣!

posted @ 2021-03-04 19:06  Evitagen  阅读(75)  评论(0)    收藏  举报