解決遞迴演算法返回值異常的問題

2021-10-23 03:24:53 字數 628 閱讀 3512

最近遇到乙個二叉樹的問題。

給定乙個家族的族譜

輸入2個家庭成員

要求輸出2人的輩分差距

typedef

struct node benode,

* betree;

int

resum

(betree& p,

char

* a)

else

}}

上述函式測試時有一部分情況良好,另一部分則是返回值完全錯誤

既然是c語言指標就完事了(滑稽)

我一向對指標沒有什麼好印象(絕對不是被指標搞昏了頭啊)

正解

上述函式出口有好多

(這犯了我初學時某愷老師說的大忌,我一直不以為意反正都這麼過來的)

於是想了許久就有了下述**

int

resum

(betree& p,

char

* a)

else

}return i;

}

注意i一定要是靜態變數

然後果然完美通關

遞迴呼叫的返回值

在這之前我不少用遞迴函式,但一直沒有真正弄明白遞迴函式的返回值的原理,為了更好的說明問題我寫乙個平衡二叉樹演算法利用遞迴演算法查詢值的原始碼如下 package com.cph.interviwe public class node public node public boolean store ...

遞迴返回值為None 解決篇

其實現在看來,當時我獲取返回值總是為空,只是因為自己沒有注意細節問題,不是什麼經典的bug,但是我還是想寫一篇文章記錄一下,因為在當時出現這個bug時,讓我困惑不解,那種感覺記憶猶新 該篇文章的 是我簡化後的 返回有none資料 def funone data one data data 功能1 r...

函式 引數 返回值 遞迴

函式 函式表示式就是忽略名字 1 函式宣告 function onname 2 命名函式表示式 var test function abc 3 匿名函式表示式 var demo function 因為匿名函式表示式比較常用,所以說函式表示式一般是指匿名函式表示式 引數 形式引數 沒有實際傳值 實際引...