從頂層開始逐層列印二叉樹節點資料
6 14
4 8 12 16
逐層列印的結果為 10 6 14 4 8 12 16
採用佇列的方式 ,先把根節點存入佇列,然後再出列,輸出這個資料。如果有左子樹,把左子樹根節點入列,如果右子樹不為空,把右子樹的根節點入列,然後如果佇列不為空,則出列。直到隊列為空。
void print(treenode * root)
queuetree; //宣告乙個樹節點的佇列
treenode tmp = null;
tree.push(root); //首先把根節點入列
while( ! tree.empty())
tmp = tree.front();
tree.pop();
(*visit)(tmp);
if(tmp->left != null)
tree.push(tmp->left);
if(tmp->right != null)
tree.push(tmp->right);
void visit(treenode *node)
printf("%d",node->data);
#include //#include #include using namespace std;
typedef struct btreenode
node;
void create(node *&r ,int m)
else
if(mdata)
} }void print(node *r)
if(p->right)
}} jingxiang(node *&r)
node *p = r;
p = r->left;
r->left = r->right;
r->right = p;
if(r->left)
if(r->right) }
void main()
列印二叉樹節點
從上往下列印出二叉樹的每個節點,同層節點從左至右列印。條件反射地想通過遞迴解決,結果硬是沒有找到合適的解決思路,也許遞迴的方式不是很適合這種型別的題目吧 利用佇列的先進先出 fifo 特性解決。每從佇列頭部獲取乙個節點,就將該節點的左右子節點存入佇列的尾部。如此往復,直至隊列為空。這篇部落格內的和 ...
完全二叉樹節點數
題目 給定一棵完全二叉樹的頭節點head,返回這棵樹的節點個數。如果完全二叉樹的節點數為n,請實現時間複雜度低於o n 的解法。方法 1 遞迴o n 演算法 int nodenum struct treenode head return 1 nodenum head left nodenum hea...
完全二叉樹節點數
給定一棵完全二叉樹的頭節點head,返回這棵樹的節點個數。如果完全二叉樹的節點數為n,請實現時間複雜度低於o n 的解法。package main import nc tools type treenode struct param head treenode類 return int整型 func ...