日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode: 107_Binary Tree Level Order Traversal II | 二叉树自底向上的层次遍历 | Easy

發布時間:2025/6/15 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode: 107_Binary Tree Level Order Traversal II | 二叉树自底向上的层次遍历 | Easy 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本題和上題一樣同屬于層次遍歷,不同的是本題從底層往上遍歷,如下:

代碼如下:

1 struct TreeNode { 2 int val; 3 TreeNode* left; 4 TreeNode* right; 5 TreeNode():val(0),left(NULL),right(NULL){} 6 TreeNode(int x): val(x), left(NULL),right(NULL) {} 7 }; 8 9 vector<vector<int> > levelOrderTraversalII(TreeNode *root) //非遞歸的中序遍歷(用棧實現) 10 { 11 12 queue<TreeNode *> tree_queue; 13 vector<vector<int> > tree_vector, tree_rvector; 14 vector<int> svector; 15 int nCount = 0; 16 17 if (NULL == root) { 18 return tree_vector; 19 } 20 TreeNode *pTemp = root; 21 tree_queue.push(root); 22 tree_queue.push(NULL); //the end of one level. 23 24 while (true) { 25 TreeNode *pTemp = tree_queue.front(); 26 tree_queue.pop(); 27 28 if (!pTemp) { //get the null, put vector<> to vector<vector<>> 29 tree_vector.push_back(svector); 30 nCount ++; 31 svector.clear(); 32 if (tree_queue.empty()) 33 break; 34 tree_queue.push(NULL); 35 } 36 else { 37 svector.push_back(pTemp->val); 38 if (pTemp->left) 39 tree_queue.push(pTemp->left); 40 if (pTemp->right) 41 tree_queue.push(pTemp->right); 42 } 43 } 44 while (nCount > 0){ 45 svector = tree_vector.at(nCount - 1); 46 tree_rvector.push_back(svector); 47 nCount --; 48 } 49 return tree_rvector; 50 }

?

總結

以上是生活随笔為你收集整理的LeetCode: 107_Binary Tree Level Order Traversal II | 二叉树自底向上的层次遍历 | Easy的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。