102. Binary Tree Level Order Traversal
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).
For example:
Given binary tree[3,9,20,null,null,15,7]
,
3
/ \
9 20
/ \
15 7
return its level order traversal as:
[
[3],
[9,20],
[15,7]
]
這題目是level order的尋訪二元樹,回傳為陣列 首先,第一種解法利用DFS,先找出樹有幾層,再分層找有哪些node
int height(struct node* node)
{
if (node==NULL)
return 0;
else
{
/* 先找最左的node,再找右,一層一層計算樹高 */
int lheight = height(node->left);
int rheight = height(node->right);
return (lheight > rheight)?(lheight+1):(rheight+1);
}
}
Reference:
geeksforgeeks: http://www.geeksforgeeks.org/level-order-tree-traversal/