麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

算法Day12-層次遍歷二叉樹

2019-11-11 06:08:58
字體:
來源:轉載
供稿:網友

題目

給定一個二叉樹,返回其節點值的層次遍歷(即從左到右,一層一層遍歷) 例如: 給定二叉樹{3,9,20,#,#,15,7} 3 / / 9 20 / / 15 7 返回層次遍歷如下: [ [3], [9,20] [15,7] ]

解析

通過廣度優先遍歷來實現層次遍歷。創建一個Queue來緩存每一層的樹節點,在遍歷Queue的過程中,每取出一個元素,將該元素的左右子節點按順序插入到Queue中。一直遍歷下去,直到Queue為空。

代碼

vector< vector<int> >levelOrder(TreeNode *root){ vector< vector<int> > result; if(root == NULL) return result; queue<TreeNode*> nodeQ; //先進先出(FIFO) 隊列類型的nodeQ變量用來緩存每一層的數節點 nodeQ.push(root); //push int nextLevelCnt=0, currentLeveCnt=1; vector<int> layer; //layer存放的為某一層的節點數值,通過layer作為中間變量加入到result int visitedCnt=0; //訪問過的節點數目 while(nodeQ.size() != 0) // 隊列不為空時訪問,否則返回結果 { TreeNode* node = nodeQ.front(); nodeQ.pop(); visitedCnt++; layer.push_back(node->val); if(node->left != NULL) //為空時不做處理 { //不為空則進隊列 nodeQ.push(node->left); nextLevelCnt++; } if(node->right != NULL) { nodeQ.push(node->right); nextLevelCnt++; } if(visitedCnt == currentLeveCnt) //訪問過的節點等于該層節點數時,開始下一層的訪問。 { //下一層訪問開始,visitedCnt置0,當前層數節點數為上層的nextLevelCnt數,nextLevelCnt置0 visitedCnt = 0; currentLeveCnt = nextLevelCnt; nextLevelCnt = 0; result.push_back(layer); //將上層的節點加入結果 layer.clear(); } } return result;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产精品久久久久国产精品三级 | 免费久久久 | 成人宗合网 | 亚洲免费视频一区二区 | 极品大长腿啪啪高潮露脸 | 日韩黄色免费观看 | 一区在线视频 | 欧美 亚洲 激情 | 56av国产精品久久久久久久 | 毛片天天看 | 精国产品一区二区三区四季综 | 日本综合久久 | 黄色免费影片 | 久久久久久久久亚洲精品 | 亚洲99| 亚洲精品久久久久www | 国产精品6区 | 欧产日产国产精品v | 毛片网站网址 | 九九热免费观看 | 请播放一级毛片 | 亚洲欧美在线视频免费 | 免费看黄色一级大片 | 国产精品久久久久久久久久iiiii | 免费一级a毛片免费观看 | 情侣啪啪网站 | 神马顶级推理片免费看 | 国产精品久久亚洲 | 高清一区二区在线观看 | 又黄又爽免费无遮挡在线观看 | 真人一级毛片免费 | 国产精品久久久久国产精品三级 | 久久久裸体视频 | 精品国产一区二区三区久久久蜜月 | 亚洲一区二区中文字幕在线观看 | 欧美a v在线 | 精品国产一二区 | 国产日本在线播放 | 国产91久久久久久 | 久久网国产精品 | 久久蜜桃香蕉精品一区二区三区 |