遍歷children_589. N叉樹的前序遍歷

82ce00116c445f53f667d9a14605bd5e.png

589. N叉樹的前序遍歷

給定一個 N 叉樹,返回其節點值的前序遍歷

例如,給定一個 3叉樹 :

e4ed6485afb3844c3cdbeb0d636d377c.png

返回其前序遍歷: [1,3,5,6,2,4]

說明: 遞歸法很簡單,你可以使用迭代法完成此題嗎?

題解:

既然是樹的遍歷,那么一共就是兩種思路,即深度優先搜索遍歷和廣度優先搜索遍歷。其中遞歸法就是深度優先搜索遍歷的思想,我們從左到右依次遍歷N叉樹的每個節點。

具體代碼如下:

/*
// Definition for a Node.
class Node {public int val;public List<Node> children;public Node() {}public Node(int _val) {val = _val;}public Node(int _val, List<Node> _children) {val = _val;children = _children;}
};
*/class Solution {List<Integer> result = new ArrayList<>();public List<Integer> preorder(Node root) {if (root == null) return result;result.add(root.val);//遍歷當前節點的所有孩子節點for (int i = 0; i < root.children.size(); i++) {preorder(root.children.get(i));}return result;}
}

題目要求思考迭代方法來遍歷,能想到的就是借鑒廣度優先搜索遍歷的方法。創建一個棧,每次棧頂彈出的元素就是前序遍歷的順序。具體來說,逆序每個節點的孩子節點,然后依次入棧,每次pop()棧頂的元素,就是前序遍歷的順序。

具體代碼如下:

/*
// Definition for a Node.
class Node {public int val;public List<Node> children;public Node() {}public Node(int _val) {val = _val;}public Node(int _val, List<Node> _children) {val = _val;children = _children;}
};
*/class Solution {List<Integer> result = new ArrayList<>();public List<Integer> preorder(Node root) {if (root == null) return result;Deque<Node> deque = new ArrayDeque<>();deque.add(root);while (!deque.isEmpty()) {Node node = deque.pop();result.add(node.val);//每次逆序入棧當前節點的所有孩子節點Collections.reverse(node.children);for (Node child : node.children) {deque.push(child);}}return result;}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/534043.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/534043.shtml
英文地址,請注明出處:http://en.pswp.cn/news/534043.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

計算機護理職稱考試報名時間2015,護理職稱考試怎么報名?

護理職稱考試報名流程&#xff1a;網上預報名-現場確認-報名繳費。護理職稱考試網上預報名及網上繳費均在中國衛生人才網&#xff0c;護理職稱考試報名現場確認則按屬地原則在單位或戶籍所在地的衛計局。護理職稱考試報名流程詳解一、網上預報名考生需在規定的時間內登錄中國衛…

怎么用python編程前二n-1項的等差數列的和_python 等差數列末項計算方式

等差數列末項計算 題目內容&#xff1a; 給出一個等差數列的前兩項a1&#xff0c;a2&#xff0c;求第n項是多少 可以使用以下語句實現非負整數n的輸入&#xff1a; nint(input()) 輸入格式: 三行&#xff0c;包含三個整數a1&#xff0c;a2&#xff0c;n 輸出格式&#xff1a; 一…

圖紙中bs是什么意思_園建施工圖中WL、BL、FL、TW、SL分別是什么意思

展開全部WL是水面標高來BL池底自標高FL地面標bai高TW墻頂標高SL 土面標高其他其他一些常du用的注解&#xff1a;PA種植區FF室內樓zhi地面標FG室外軟景完成dao面標高BC路沿底標高BS踏步底標高BR欄桿扶手底標高TR欄桿扶手頂標高SL結構板頂標高擴展資料本書圍繞園林工程建設主題&a…

計算機未顯示移動硬盤,電腦不顯示移動硬盤怎么辦_移動硬盤已連接不顯示解決教程...

最近有很多小伙伴咨詢小編&#xff0c;電腦不顯示移動硬盤怎么辦&#xff0c;怎么設置才能恢復呢&#xff1f;其實操作內容很簡單&#xff0c;嘗試刪除你的USB3.0可擴展主機控制器,再掃描硬件改動&#xff0c;今天就由小編來告訴你&#xff0c;移動硬盤已連接不顯示的解決方法。…

八個角最多可以把平面分成多少部分?_一個空間最多能被分成幾塊?

相信大家在小學奧數中都遇到這樣一個問題&#xff1a;4條直線最多能將平面分成幾部分&#xff1f;這個問題并不能難倒我們&#xff0c;但是如果將問題改為&#xff1a;4個平面最多能將空間分為幾部分&#xff1f;這下子我們可能就要放棄了。為了解決這個問題&#xff0c;今天我…

ios 不被遮擋 陰影_IOS開發之Bug--iOS7View被導航欄遮擋問題的解決

在實際開發中&#xff0c;遇到在UITextView的frame等于當前控制器的View的frame的情況下&#xff0c;然后運行的時候&#xff0c;發現控制器的Frame的高度y值會從導航條的位置64變化到0。導致UITextView的frame也跟著一起移動。這個問題本質其實就是iOS7View被導航欄遮擋問題&a…

破壞計算機信息系統功能罪,破壞計算機信息系統罪

破壞計算機信息系統罪2010年05月05日19:42法律咨詢 我要評論一、概念&nbsp&nbsp&nbsp&nbsp破壞計算機信息系統罪(刑法第286條)&#xff0c;是指違反國家規定&#xff0c;對計算機信息系統功能或計算機信息系統中存儲、處理或者傳輸的數據和應用程序進行破壞…

python解析html xml最好的模塊_Python HTML/XML解析器BeautifulSoup(爬蟲解析器)

The Dormouses storyOnce upon a time there were three little sisters; and their names were Elsie, Lacie and Tillie; and they lived at the bottom of a well....

ffmpeg運行在服務器上,FFMPEG安裝在服務器上

我有一個在線服務器(共享主機方案)在Linux中&#xff0c;我不知道很多關于Linux的東西&#xff0c;我正在嘗試安裝ffmpeg。FFMPEG安裝在服務器上當安裝正在運行我得到這個消息&#xff0c;并停止安裝...Installation of MPlayer-1.0rc1.tar.bz2 ....... started% Total % Recei…

python csv pandas_Python Pandas——Read_csv詳解

目前最常用的數據保存格式可能就是CSV格式了&#xff0c;數據分析第一步就是獲取數據&#xff0c;怎樣讀取數據至關重要。 本文將以pandas read_csv方法為例&#xff0c;詳細介紹read_csv數據讀取方法。再數據讀取時進行數據預處理&#xff0c;這樣不僅可以加快讀取速度&#x…

python3兼容python2 print_python 字符串 r raw Python2 和 Python3 的區別及兼容技巧

前言最近 Python 之父 Guido van Rossum(龜爺)終于在 Python 官方郵件組落實了 Python 2.7 的終焉之日(EOL)。說的是 Python 2.7 的 EOL 日期最終確定為 2020 年 1 月 1 日&#xff0c;之后不會有任何更新&#xff0c;包括源碼的安全補丁。所以兼容Python3已經可以說非常必要了…

nginx搭建文件服務器腳本,基于docker搭建nginx文件服務器的方法步驟

1.在本機新建配置文件docker_nginx.confserver {listen 7070;server_name localhost;charset utf-8;location /files {#在docker內nginx的目錄alias /home/files;expires 1d;allow all;autoindex on;}2.啟動命令docker run --name nginx -d -p 7070:7070 -v D:\dev\nginx-1.13.…

python運行不了指令_python不是內部命令或外部命令,也不是可執行程序解決方法...

簡述 常見于新手初裝python&#xff0c;然后忘記勾選設置環境變量(PATH)&#xff0c;或者沒有重啟&#xff0c;然后運行教程中的python命令時出現。 有兩個解決方法&#xff1a;1.設置環境變量&#xff0c;然后重啟。 2.新建命令。 如果你打算同時安裝多個python版本&#xff0…

快手通過標簽添加你什么意思_快快手粉絲數旁邊的關注是什么意思手通過關注頁添加是什么意思...

Aauto Speeter通過關注頁面添加的內容意味著&#xff0c;如果你已經在關注遇到了其他人&#xff0c;并且他們對你感興趣&#xff0c;他們將從這個關注頁面添加關注&#xff0c;并成為你的粉絲。事實上&#xff0c;得到關注和粉絲并不是特別困難。如果主要發表的內容有意思&…

ovation系統服務器安裝,Ovation系統介紹.ppt

Ovation系統介紹熱控調試關于OVATION系統的一點簡介;目錄;Ovation系統的結構及硬件;典型的OVATION系統結構;Primary;網線插拔后需重啟控制器&#xff0c;否則顯示橙色&#xff0c;failmode報警;每扇門都有風扇;;I/0 子系統結構 ; I/O 模件; I/O 卡指示 ;模件種類減少&#xff0…

東京戰紀服務器維護中,東京戰紀7月21維護公告 當前測試進度介紹

東京戰紀當前的測試進度已經有了很大的進步&#xff0c;接下來小編就跟大家一起看看測試期間對玩家給大家的報告吧。親愛的喰種和CCG搜查官們7月19日中午12:00&#xff0c;我們懷著緊張又忐忑的心情開啟了《東京戰紀》官網限量刪檔技術測試。大家對《東京喰種》IP的熱愛和對《東…

springboot能用python嗎_Python與springboot的對接

使用springboot建立一個web demo ,其中有一個接口如下&#xff0c;為了測試加了一個參數 type: Autowired private JdbcTemplate jdbcTemplate; RequestMapping(value "/getCountry", method RequestMethod.GET) // ResponseBody public List> getUser(RequestB…

docker重啟后容器消失_docker設置固定ip地址

代碼來源:博客園 原文作者:雪之谷 原文鏈接:https://www.cnblogs.com/xuezhigu/p/8257129.html 本文版權歸原作者所有,如有侵權請立即與我聯系,我將及時處理。 背景: 我開發用的機器上邊會啟動幾個容器,就因為保潔阿姨碰了一下我的插排,我的機器被斷電關機了。 默認情況下…

模型穩定后放在服務器上,把工程放在服務器上

把工程放在服務器上 內容精選換一換獲取方式&#xff1a;Ascend-mindx-msinstaller_{version}.zip&#xff1a;獲取鏈接適用場景&#xff1a;在一臺Linux服務器上使用msInstaller工具給本機安裝開發或運行環境。在一臺Linux服務器上使用msInstaller工具遠程給昇騰AI設備安裝開發…

洛陽地鐵一號線無人駕駛_洛陽地鐵洛陽造:智能化車廂、無人駕駛、加熱座椅……...

大家好&#xff0c;印象妹又來給大家播報地鐵的情況啦&#xff01;自從12月1日地鐵1號線試運行啟動&#xff0c;后臺里經常有人私信印象妹&#xff0c;多講講咱大洛陽的地鐵情況&#xff0c;下面&#xff0c;來咯&#xff01;身為洛陽人&#xff0c;我們都知道洛陽是中西部地區…