国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

Leetcode038--二叉樹的層序遍歷

2019-11-06 06:43:24
字體:
來源:轉載
供稿:網友

一、原題

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,#,#,15,7},

    3   / /  9  20    /  /   15   71234512345

return its level order traversal as:

[  [3],  [9,20],  [15,7]]

一、中文

給定一個二叉樹,輸出它的每一層的結點。

三、舉例

上面的題目中給的就有例子,還是比較好理解的

四、思路

 使用兩個隊列的方式,隊列是先進先出的,所以我們這里使用兩個隊列,一個隊列存儲當前層的二叉樹結點,另外一個隊列來存儲下一層的結點,然后將當前層的左右子結點按照順序放入下一層中,處理完下一層之后將本層和下一層進行一個互換的操作。

五、程序

package code;import java.util.Deque;import java.util.Iterator;import java.util.LinkedList;//class TreeNode{//	int val;//	TreeNode left;//	TreeNode right;//	TreeNode(int x){//		val = x;//	}//}public class LeetCode51{	public static void main(String args[]){		TreeNode n1 = new TreeNode(1);		TreeNode n2 = new TreeNode(2);		TreeNode n3 = new TreeNode(2);		TreeNode n4 = new TreeNode(3);		TreeNode n5 = new TreeNode(4);		TreeNode n6 = new TreeNode(3);		TreeNode n7 = new TreeNode(4);				n1.left = n2;		n1.right = n3;				n2.left = n4;		n2.right = n5;				n3.left = n7;		n3.right = n6;				LinkedList<LinkedList<Integer>> res = levelOrder(n1);				Iterator<LinkedList<Integer>> it1 = res.iterator();		while(it1.hasNext()){			Iterator<Integer> it2 = it1.next().iterator();			while(it2.hasNext()){				System.out.PRint(it2.next()+" ");			}			System.out.println();		}	}	//第一種使用遞歸的方式	public static LinkedList<LinkedList<Integer>> levelOrder(TreeNode root) {		LinkedList<LinkedList<Integer>> res = new LinkedList<>();				if(root == null){			return res;		}		        Deque<TreeNode> cur = new LinkedList<>();        Deque<TreeNode> sub = new LinkedList<>();        Deque<TreeNode> exc;                cur.addLast(root);        TreeNode node;                while(!cur.isEmpty()){        	LinkedList<Integer> temp = new LinkedList<>();        	        	while(!cur.isEmpty()){        		node = cur.removeFirst();        		temp.add(node.val);        		        		if(node.left != null){        			sub.addLast(node.left);	        		}        		        		if(node.right != null){        			sub.addLast(node.right);	        		}        		        	}        	    		exc = cur;            cur = sub;            sub = exc;            res.add(temp);        }        return res;	}	}	----------------------------------------output-------------------------------------------
1 2 2 3 4 4 3
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 神农架林区| 吉首市| 抚远县| 安庆市| 象山县| 呼伦贝尔市| 娱乐| 二连浩特市| 花莲市| 郁南县| 临海市| 颍上县| 都匀市| 延安市| 海口市| 康定县| 西畴县| 友谊县| 太谷县| 繁峙县| 阳东县| 金寨县| 紫金县| 土默特右旗| 济南市| 汉中市| 安西县| 太原市| 张家界市| 罗甸县| 西充县| 贡觉县| 仁寿县| 新河县| 嘉峪关市| 晋江市| 宝坻区| 揭西县| 双桥区| 长沙市| 定襄县|