摘要:前言的遞增順序查找樹,題目要求如下給定一個樹,按順序重新排列樹,使樹中最左邊的結(jié)點現(xiàn)在是樹的根,并且每個結(jié)點沒有左子結(jié)點,只有一個右子結(jié)點。
前言
Weekly Contest 100的遞增順序查找樹,題目要求如下:
給定一個樹,按順序重新排列樹,使樹中最左邊的結(jié)點現(xiàn)在是樹的根,并且每個結(jié)點沒有左子結(jié)點,只有一個右子結(jié)點。
示例 :
輸入:[5,3,6,2,4,null,8,1,null,null,null,7,9] 5 / 3 6 / 2 4 8 / / 1 7 9 輸出:[1,null,2,null,3,null,4,null,5,null,6,null,7,null,8,null,9] 1 2 3 4 5 6 7 8 9解題思路
這道題解題步驟如下:
找出樹的最左節(jié)點:用中序遍歷的方式獲取到樹的最左節(jié)點的訪問序列
根據(jù)這個訪問序列生成一個只有右節(jié)點的樹即可
PS:我個人是把中序遍歷簡單記做左中右
實現(xiàn)代碼/** * 遞增順序查找樹 * * @param root * @return */ public TreeNode increasingBST(TreeNode root) { Listlist = inorderTraversal(root); TreeNode result = new TreeNode(list.get(0)); TreeNode currentNode = result; for (int i = 1; i < list.size(); i++) { currentNode.right = new TreeNode(list.get(i)); currentNode = currentNode.right; } return result; } /** * 中序遍歷 * @param root * @return */ private List inorderTraversal(TreeNode root) { List list=new ArrayList (); if(root!=null){ inorderTraversal(root,list); } return list; } /** * 中序遍歷時調(diào)用的遞歸方法 * @param root * @return */ private void inorderTraversal(TreeNode root,List list){ if(root.left!=null){//遍歷左子樹 inorderTraversal(root.left,list); } list.add(root.val);//記錄根節(jié)點 if(root.right!=null){//遍歷右子樹 inorderTraversal(root.right,list); } }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/76967.html
文章目錄 一、題目1、題目描述2、基礎(chǔ)框架3、原題鏈接 二、解題報告1、思路分析2、時間復雜度3、代碼詳解 三、本題小知識四、加群須知 一、題目 1、題目描述 ??給你一棵二叉搜索樹,請按 中序遍歷 將其重新排列為一棵遞增順序搜索樹,使樹中最左邊的節(jié)點成為樹的根節(jié)點,并且每個節(jié)點沒有左子節(jié)點,只有一個右子節(jié)點。??樣例輸入: [5,3,6,2,4,null,8,1,null,null,nu...
摘要:題目要求檢驗二叉查找樹是否符合規(guī)則。二叉查找樹是指當前節(jié)點左子樹上的值均比其小,右子樹上的值均比起大。因此在這里我們采用棧的方式實現(xiàn)中序遍歷,通過研究中序遍歷是否遞增來判斷二叉查找樹是否符合規(guī)則。 題目要求 Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is...
摘要:題目要求檢驗二叉查找樹是否符合規(guī)則。二叉查找樹是指當前節(jié)點左子樹上的值均比其小,右子樹上的值均比起大。因此在這里我們采用棧的方式實現(xiàn)中序遍歷,通過研究中序遍歷是否遞增來判斷二叉查找樹是否符合規(guī)則。 題目要求 Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is...
摘要:查找表查找表相關(guān)概念查找表是由同一類型的數(shù)據(jù)元素或記錄構(gòu)成的集合。由于集合中的數(shù)據(jù)元素之間存在著完全松散的關(guān)系,因此查找表是一種非常靈便的數(shù)據(jù)結(jié)構(gòu)。缺點平均查找長度較大。索引順序表的查找若以索引順序表表示靜態(tài)查找表,則查找可以用分塊查找。 查找表 search table 查找表相關(guān)概念 查找表是由同一類型的數(shù)據(jù)元素(或記錄)構(gòu)成的集合。由于集合中的數(shù)據(jù)元素之間存在著完全松散的關(guān)系,因...
閱讀 1360·2023-04-25 23:42
閱讀 2855·2021-11-19 09:40
閱讀 3535·2021-10-19 11:44
閱讀 3573·2021-10-14 09:42
閱讀 1877·2021-10-13 09:39
閱讀 3844·2021-09-22 15:43
閱讀 679·2019-08-30 15:54
閱讀 1461·2019-08-26 13:32