題目描述
對於一棵二叉樹,請設計乙個演算法,建立含有某一深度上所有結點的鍊錶。
給定二叉樹的根結點指標treenode* root,以及鍊錶上結點的深度,請返回乙個鍊錶listnode,代表該深度上所有結點的值,請按樹上從左往右的順序鏈結,保證深度不超過樹的高度,樹上結點的值為非負整數且不超過100000。
/*
struct treenode
};*/
/*struct listnode
};*/
class treelevel
q.pop();
if (node->left) q.push(node->left);
if (node->right) q.push(node->right);
}++num;
}listnode* r = new listnode(0);
listnode* start = r;
for(auto i: temp)
return start->next;
}};
class treelevel
void inorder(treenode* root, int dep)
inorder(root->left, dep -
1); inorder(root->right, dep -
1); }
private:
listnode *p;
};
二叉樹 二叉鍊錶
include using namespace std typedef char elemtype int n 0 typedef struct binode binode class bitree bitree binode getroot void preorder binode root 前序...
n節點組成二叉樹的個數
可以分析,當n 1時,只有1個根節點,則只能組成1種形態的二叉樹,令n個節點可組成的二叉樹數量表示為h n 則h 1 1 h 0 0 當n 2時,1個根節點固定,還有2 1個節點。這乙個節點可以分成 1,0 0,1 兩組。即左邊放1個,右邊放0個 或者左邊放0個,右邊放1個。即 h 2 h 0 h ...
二叉樹(二叉鍊錶實現)
二叉鍊錶結構的二叉樹模型,棧用自己寫的模版,佇列就不了 直接用stl的,不然 太長了 檔案 tree.h include include includeusing namespace std templateclass my stack templateclass node 結點類 node t d...