《程式設計師面試金典》輸出單層結點

2021-12-29 21:32:58 字數 500 閱讀 3679

題目描述

對於一棵二叉樹,請設計乙個演算法,建立含有某一深度上所有結點的鍊錶。

給定二叉樹的根結點指標treenode* root,以及鍊錶上結點的深度,請返回乙個鍊錶listnode,代表該深度上所有結點的值,請按樹上從左往右的順序鏈結,保證深度不超過樹的高度,樹上結點的值為非負整數且不超過100000。

思路如果之前做過類似的題目,那這道題其實也很簡單了,遍歷方法無非就是深度優先與廣度優先,對於這道題深度優先肯定是不行的,我們知道廣度優先是發散性的行走,所以我們可以使用廣度優先來完成這道題,將所有同層的結點儲存在佇列之中。

/*struct treenode

};*/

/*struct listnode

};*/

class treelevel

}while(!q.empty())

while(!tmp.empty())

++cnt;

}return newlist->next;

}};

程式設計師面試金典 輸出單層結點

程式設計師面試金典 輸出單層結點 對於一棵二叉樹,請設計乙個演算法,建立含有某一深度上所有結點的鍊錶。給定二叉樹的根結點指標treenode root,以及鍊錶上結點的深度,請返回乙個鍊錶listnode,代表該深度上所有結點的值,請按樹上從左往右的順序鏈結,保證深度不超過樹的高度,樹上結點的值為非...

程式設計師面試金典

1.有個小孩正在上樓梯,樓梯有n階台階,小孩一次可以上1階 2階 3階。請實現乙個方法,計算小孩有多少種上樓的方式。為了防止溢位,請將結果mod 1000000007 給定乙個正整數intn,請返回乙個數,代表上樓的方式數。保證n小於等於100000。int countways int n retu...

程式設計師面試金典 2 2

return kth to last 返回單鏈表中倒數第k個元素。下面會分別使用遞迴和非遞迴的方法來解決這道題,一般來說遞迴的方法寫起來更容易,但是效率一般不是最好的,比如這道題遞迴解法的 量大約是非遞迴解法的一半,但是時間複雜度依然是o n 遞迴解法。這種方法的本質是先遍歷到鍊錶尾部,最後再返回的...