区块链技术博客
www.b2bchain.cn

<新浪微博笔试1>倒置二叉树,输入为数组,层序输出

这篇文章主要介绍了<新浪微博笔试1>倒置二叉树,输入为数组,层序输出,通过具体代码讲解8723并且分析了<新浪微博笔试1>倒置二叉树,输入为数组,层序输出的详细步骤与相关技巧,需要的朋友可以参考下

本文实例讲述了<新浪微博笔试1>倒置二叉树,输入为数组,层序输出。分享给大家供大家参考文章查询地址https://www.b2bchain.cn/8723.html。具体如下:

给定二叉树数组,构建二叉树,进行二叉树倒置 ,层序输出

https://support.leetcode-cn.com/hc/kb/article/1194353/<新浪微博笔试1>倒置二叉树,输入为数组,层序输出

package lzl.bishi;  import java.util.LinkedList; import java.util.Queue; import java.util.Scanner;  public class Wb1 {     private static int[] ans;     private  static int index=0;     public static void main(String[] args) {         Scanner sc=new Scanner(System.in);         String str=sc.nextLine();         String[]  strs=str.split(",");         int len=strs.length;         int [] arr=new int[len];         for (int i = 0; i <len ; i++) {             arr[i]=Integer.valueOf(strs[i]);         }        // TreeNode root=buildTree(arr,0,arr.length-1);         TreeNode root=buildTree2(arr,1);         TreeNode res=dfs(root);         ans=new int[len];          print(res);         for (int i = 0; i <len-1 ; i++) {             System.out.print(ans[i]+",");         }         System.out.println(ans[len-1]);     }     public static class TreeNode{         int val;         TreeNode left;         TreeNode right;         TreeNode(int val){             this.val=val;         }     }      public static  TreeNode buildTree2(int[] arr,int index){         if(index>arr.length) return null;         Integer v=arr[index-1];         if(v==null) return  null;         TreeNode node=new TreeNode(v);         node.left=buildTree2(arr,index*2);         node.right=buildTree2(arr,index*2+1);         return node;     }       public static TreeNode dfs(TreeNode root){         if(root==null || (root.left==null )) return  root;         TreeNode t=root.left,r=root.right;         TreeNode res=dfs(t);         t.left=root.right;         t.right=root;         root.right=null;         root.left=null;         return  res;     }     private static void print(TreeNode root){         if(root==null) return ;         Queue<TreeNode> q=new LinkedList<>();         q.add(root);         while(!q.isEmpty()){             int size=q.size();             for (int i = 0; i <size ; i++) {                 TreeNode node=q.poll();                 ans[index++]=node.val;                 if(node.left!=null)q.add(node.left);                 if(node.right!=null) q.add(node.right);             }         }      } } 

 

本文地址https://www.b2bchain.cn/8723.html

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » <新浪微博笔试1>倒置二叉树,输入为数组,层序输出
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们