一、c++的數(shù)據(jù)結(jié)構(gòu)中,某個(gè)結(jié)點(diǎn)root的表示中!root和root!=nullptr的區(qū)別
在 C++ 的數(shù)據(jù)結(jié)構(gòu)中,通常使用指針來表示節(jié)點(diǎn)之間的連接關(guān)系。當(dāng)表示某個(gè)節(jié)點(diǎn)時(shí),有時(shí)會(huì)使用 !root 和 root != nullptr 兩種方式。它們的區(qū)別如下:
!root 表示 root 指針為空指針 nullptr,也就是 root 指向的節(jié)點(diǎn)不存在。當(dāng)使用 !root 表示節(jié)點(diǎn)時(shí),通常指該節(jié)點(diǎn)不存在,或者該節(jié)點(diǎn)的某些屬性為空。
root != nullptr 表示 root 指針不為空指針 nullptr,也就是 root 指向的節(jié)點(diǎn)存在。當(dāng)使用 root != nullptr 表示節(jié)點(diǎn)時(shí),通常指該節(jié)點(diǎn)存在,或者該節(jié)點(diǎn)的某些屬性不為空。
在實(shí)際編碼中,通常會(huì)根據(jù)需要選擇使用 !root 或者 root != nullptr。例如,在遍歷二叉樹時(shí),可以使用 while (node != nullptr) 或者 while (!stack.empty()) 來判斷節(jié)點(diǎn)是否存在,這兩種方式是等價(jià)的。