<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ### 打印二叉樹 ![](https://img.kancloud.cn/29/9c/299c06de25881d273873a8abb32a8535_458x170.png) ~~~ // 打印二叉樹,基于中序遍歷順序加節點層級構建二維數組實現打印 public static void printTree(TreeNode node){ List<TreeNode> inList = getInList(node); Map<TreeNode,Integer> levelMap = new HashMap<>(); int level = handleTreeLevel(levelMap,node); // 以中序遍歷順序構建二維數組 int row = level; int col = (int) Math.pow(2,row)-1; int[][] nums = new int[row][col]; for(int i=0;i<inList.size();i++){ TreeNode cur = inList.get(i); nums[levelMap.get(cur)-1][i] = cur.val; } // 打印二維數組 for(int i=0;i<row;i++){ for(int j=0;j<col;j++){ System.out.print(0 == nums[i][j] ? "\t": getPre0Str(nums[i][j])); } System.out.println(); } } // 獲取中序遍歷list public static List<TreeNode> getInList(TreeNode node){ List<TreeNode> result = new ArrayList<>(); Stack<TreeNode> stack = new Stack<>(); // 頭節點入棧 stack.push(node); while(!stack.isEmpty()){ // 左子數入棧 while(node.left != null){ stack.push(node.left); node = node.left; } TreeNode cur = stack.pop(); result.add(cur); // 如果有右,則右節點入棧 if(null != cur.right){ stack.push(cur.right); // 將node指針指向右節點 node = cur.right; } } return result; } // 得到節點層級hash表和高度level public static int handleTreeLevel(Map<TreeNode,Integer> levelMap,TreeNode node){ int level = 1; Queue<TreeNode> queue = new LinkedList<>(); queue.offer(node); levelMap.put(node,level); while(!queue.isEmpty()){ TreeNode cur = queue.poll(); if(levelMap.get(cur) != level){ level++; } levelMap.put(cur,level); if(cur.left != null){ queue.offer(cur.left); levelMap.put(cur.left,level+1); } if(cur.right != null){ queue.offer(cur.right); levelMap.put(cur.right,level+1); } } return level; } // 獲取4位補空格的字符串 public static String getPre0Str(int num){ String str = num+""; int count = 4 - str.length(); while (count>0){ str = " "+str; count--; } return str; } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看