那天看到這麼乙個題目,內容是這樣的:
我大概思考了一下,首先得先得到這棵樹的乙個遍歷,然後樹中節點的左子樹指標相當於雙向鍊錶中的prior指標,右子樹指標相當於雙向鍊錶的next指標,那麼頭結點應該就是葉子中最左的,我們前面得到的遍歷結果中,凡是左右子樹都為null的就是葉子,只需要將這些鏈結到雙向鍊錶中就ok了。
我給出的偽碼如下:
/** 假設二叉樹的結點定義 如下:
* struct tnode ;
*/tnode* linkleaf(tnode* proot) else else }}
tnode* pcurleaf = null;
while (inorderstack.size()) else }}
return pcurleaf;
}
二叉樹題目
struct treenode treenode left treenode right 遞迴解法 如果二叉樹為空,節點個數為0 如果二叉樹不為空,那麼節點個數 左子樹結點個數 右子樹結點個數 1 int getnodenum treenode root 如果二叉樹為空,二叉樹的深度為0 如果二叉樹...
二叉樹題目
include include includeusing namespace std void print postorder int n,char pre,char in n代表節點個數,pre前 in 中 post後,不建樹用void int main void return 0 根據後中求層次...
leetcode二叉樹之一
目的 求二叉樹最大直徑 返回值 int 輸入 treenode definition for a binary tree node.struct treenode class solution intdiameterofbinarytree treenode root 學習一下二叉樹,感覺這兒演算法...