1 回答

TA貢獻(xiàn)1900條經(jīng)驗(yàn) 獲得超5個(gè)贊
讓我們一步一步來(lái)。
它使用指針,因?yàn)?left 和/或 right 可以是 nil (根本沒有設(shè)置),你不能有一個(gè)值。此外,如果他們使用,
left, right node
您將擁有無(wú)限數(shù)量的節(jié)點(diǎn),因?yàn)樵撝祵⑹冀K被設(shè)置。visit func(int)
允許您傳遞類型為 的函數(shù)func(int)
,例如其他語(yǔ)言中的回調(diào)。n.left.iterPreorder
/n.right.iterPreorder
,您實(shí)際上是在調(diào)用iterPreorder
子節(jié)點(diǎn),而不是調(diào)用它的同一個(gè)節(jié)點(diǎn)。該代碼只是創(chuàng)建一棵樹并為其分配節(jié)點(diǎn)。
為了更好地可視化:
tree := &node{1,
&node{2,
&node{4,
&node{7, nil, nil},
nil},
&node{5, nil, nil}},
&node{3,
&node{6,
&node{8, nil, nil},
&node{9, nil, nil}},
nil}}
是相同的:
tree = &node{value: 1}
tree.left = &node{value:2}
tree.left.left = &node{value: 4}
tree.left.left.left = &node{value: 7}
tree.left.right = &node{value: 5}
tree.right = &node{value:3}
tree.right.left = &node{value: 6}
tree.right.left.left = &node{value: 8}
tree.right.left.right = &node{value: 9}
獎(jiǎng)金:
使用&返回一個(gè)指針,例如n := &node{},n是一個(gè)指向節(jié)點(diǎn)的指針。
檢查此有關(guān)圍棋的指針優(yōu)秀文章。
也必須閱讀Effective Go,并嘗試通過游覽
- 1 回答
- 0 關(guān)注
- 202 瀏覽
添加回答
舉報(bào)