2021-01-05

LeetCode递增顺序查找树

目录
  • 题目详情
  • 一、解题思路
  • 二、使用步骤
  • 三、代码
  • 总结

题目详情

在这里插入图片描述
题目详情链接

一、解题思路

将原树进行中序遍历将树中的节点的非空值放入到一个list集合中,创建一棵新树然后通过递归的方式将不断生成的新的右子树直到集合遍历完。

二、使用步骤

1.对原树进行中序遍历。将非空树的值一次放入到List集合中。2.创建一个函数用于对集合进行遍历,将每次遍历得到的值用来创建当前树的值。 在集合遍历完之前,继续递归该函数,将传递的实参改为当前树的右子树。

三、代码

class Solution { public TreeNode increasingBST(TreeNode root) {  if(root!=null){   ArrayList array=new ArrayList<>();   Solution s=new Solution();   s.inOrderTraversal(root,array);   root=s.toTree(null,array,0);   return root;  }else{   return null;  } }	//通过递归的方式不断将集合中的值有做新的右子树的值 public TreeNode toTree(TreeNode root,List<Integer> array,int length){  root=new TreeNode(array.get(length));  root.left=null;  if(length<array.size()-1){   length++;   root.right=toTree(root.right,array,length);  }  return root; }	//中序遍历 public void inOrderTraversal(TreeNode root,List<Integer> array){  if(root==null){   return ;  }else{   inOrderTraversal(root.left,array);   array.add(root.val);   inOrderTraversal(root.right,array);  } }}

总结

在我看来树的重点需要掌握的就是树的遍历方式。前序、中序、后序、层序。基本上许多和树有关的题目都会涉及到他的遍历方式。这些方式都可以通过递归的方式来实现。









原文转载:http://www.shaoqun.com/a/504890.html

跨境电商:https://www.ikjzd.com/

bsci:https://www.ikjzd.com/w/2339

贝贝母婴网:https://www.ikjzd.com/w/1321


目录题目详情一、解题思路二、使用步骤三、代码总结题目详情题目详情链接一、解题思路将原树进行中序遍历将树中的节点的非空值放入到一个list集合中,创建一棵新树然后通过递归的方式将不断生成的新的右子树直到集合遍历完。二、使用步骤1.对原树进行中序遍历。将非空树的值一次放入到List集合中。2.创建一个函数用于对集合进行遍历,将每次遍历得到的值用来创建当前树的值。在集合遍历完之前,继续递归该函数,将传递
福茂:福茂
海拍客:海拍客
亚马逊瑞典站点正式上线 为卖家开拓瑞典及欧洲市场带来新机遇:亚马逊瑞典站点正式上线 为卖家开拓瑞典及欧洲市场带来新机遇
垂直电商:垂直电商
口述:闪婚老婆连睡俩上司后逼我闪离老婆上司闪婚:口述:闪婚老婆连睡俩上司后逼我闪离老婆上司闪婚

No comments:

Post a Comment