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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

常考数据结构与算法:输出二叉树的右视图

發(fā)布時間:2025/6/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 常考数据结构与算法:输出二叉树的右视图 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題目描述

請根據(jù)二叉樹的前序遍歷,中序遍歷恢復(fù)二叉樹,并打印出二叉樹的右視圖

?

上圖樹的右視圖為:{1,4,3,7}?

?

? 做此題之前可以先做下面3道題:

? ? 1.?常考數(shù)據(jù)結(jié)構(gòu)與算法:求二叉樹的層序遍歷

? ? 2.常考數(shù)據(jù)結(jié)構(gòu)與算法:二叉樹的之字形層序遍歷

? ? 3.常考數(shù)據(jù)結(jié)構(gòu)與算法:重建二叉樹

import java.util.ArrayList; import java.util.Stack;class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) { val = x; } }public class ReConstructBinaryTreeShowRight {public static void main(String[] args) {int[] xianxu = {1,2,8,4,5,6,7,3};int[] zhongxu = {8,2,1,5,7,6,4,3};ReConstructBinaryTreeShowRight reConstructBinaryTreeShowRight = new ReConstructBinaryTreeShowRight();reConstructBinaryTreeShowRight.solve(xianxu,zhongxu);}private TreeNode findBinaryTree(int[] xianxu,int preStart, int preEnd, int[] zhongxu, int inStart, int inEnd){if(preStart > preEnd || inStart > inEnd){return null;}TreeNode root = new TreeNode(xianxu[preStart]);for (int i = inStart; i <=inEnd ; i++) {if(xianxu[preStart] == zhongxu[i]){// 根節(jié)點/*preStart+1,preStart+i-inStart 前序遍歷的左子樹inStart,i-1 中序遍歷的左子樹*/root.left = findBinaryTree(xianxu,preStart+1,preStart+i-inStart,zhongxu,inStart,i-1);/*preStart+1,preStart+i-inStart 前序遍歷的右子樹inStart,i-1 中序遍歷的右子樹*/root.right =findBinaryTree(xianxu,preStart+i-inStart+1,preEnd,zhongxu,i+1,inEnd);}}return root;}public int[] solve (int[] xianxu, int[] zhongxu) {TreeNode root = findBinaryTree(xianxu,0,xianxu.length-1, zhongxu,0, zhongxu.length-1);if(null == root){return null;}ArrayList<Integer> arrayList = new ArrayList<>();Stack<TreeNode> stack1 = new Stack<>();Stack<TreeNode> stack2 = new Stack<>();stack1.push(root);while(!stack1.isEmpty() || !stack2.isEmpty()){if(!stack1.isEmpty()){int len = stack1.size();while(!stack1.isEmpty()){TreeNode node = stack1.pop();if(node.right != null){stack2.push(node.right);}if(node.left != null){stack2.push(node.left);}if(len-1 == stack1.size()){arrayList.add(node.val);}}}else{while(!stack2.isEmpty()){TreeNode node = stack2.pop();if(node.left != null){stack1.push(node.left);}if(node.right != null){stack1.push(node.right);}if(stack2.size() == 0){arrayList.add(node.val);}}}}int[] arr = null;if(!arrayList.isEmpty()) {arr = new int[arrayList.size()];for (int i = 0; i < arrayList.size(); i++) {arr[i] = arrayList.get(i);}}return arr;} }

?

總結(jié)

以上是生活随笔為你收集整理的常考数据结构与算法:输出二叉树的右视图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 刘亦菲毛片 | 美女啪啪免费视频 | juliaann办公室丝袜大战 | 黄色av网站在线看 | 年代下乡啪啪h文 | 欧美成人精品在线视频 | 特级黄色片 | 99在线精品免费视频 | 综合色网站 | 色综合天天综合 | 6080久久| 国产精品一区二区三区四区五区 | 国产伦精品视频一区二区三区 | 国产伦精品一区二区三区千人斩 | 国模小丫大尺度啪啪人体 | 福利av在线 | av首页在线观看 | 波多野结衣乳巨码无在线观看 | 亚洲成人一区在线观看 | 国产色自拍 | 亚洲少妇自拍 | 狠狠狠狠狠干 | 波多野结衣一区二区三区高清 | 国产成人99 | 国产精品亚洲一区二区三区在线观看 | 国产永久视频 | 成人av片在线观看 | 欧美成人a| 伊人影院av | 国产91在线 | 亚洲 | 久久亚洲AV无码专区成人国产 | 五号特工组之偷天换月 | 日韩视频免费观看高清完整版 | 毛片手机在线 | 国产人妻一区二区三区四区五区六 | 囯产精品久久久久久 | 爱豆国产剧免费观看大全剧集 | 大地资源中文在线观看免费版 | 欧美日韩精品免费 | 久久黄色av| 一区二区三区四区中文字幕 | 波多野结衣亚洲天堂 | 小视频黄色 | 亚洲av无码不卡一区二区三区 | 国产精品免费在线播放 | 日韩七区 | 福利在线免费 | 免费毛片一区二区三区 | 国产精品二区在线观看 | 夏晴子在线 | 色婷婷av一区二区三区四区 | 欧美videossex另类 | 一级视频在线观看 | 国产精品美女久久久久久 | 久久成人午夜 | 2020国产在线 | 天天操综合网 | 日鲁鲁 | www.久久| 久久中文视频 | 男人的天堂av网 | 成人av电影在线观看 | 黑人一区二区三区四区五区 | 免费观看一区二区三区毛片 | 国产黄色电影 | 国产a级淫片 | 哺乳喂奶一二三区乳 | 男人和女人插插 | 免费看欧美大片 | 最新中文字幕 | 婷婷伊人| 日本激情一区二区三区 | 97av在线播放 | 一级特黄录像免费看 | 国产欧美一级 | 五月天激情影院 | 国产乱码精品一区二区 | 日韩性xx| 亚洲国产精品久久久久爰性色 | 光明影院手机版在线观看免费 | 日韩成人在线网站 | 91av久久久| 久久精品天天中文字幕人妻 | 欧美精品免费看 | 99在线视频免费观看 | 国产男男gay体育生白袜 | 免费看的av | 麻豆传媒mv| 影音先锋男人天堂 | 久久久老司机 | 青青伊人网 | 中文成人无字幕乱码精品区 | 久久这里只有精品8 | 九九热视频精品在线观看 | 国产精品久久久久91 | 亚洲精品一区二区三区蜜桃久 | 九九精品国产 | 一区二区三区国 | 亚洲一区中文字幕永久在线 |