• 如何在IDE(eclipse)中debug LeetCode的树算法


    在做LeetCode的题时,只需要编辑算法核心逻辑即可,如逻辑正确则执行成功,但如果逻辑出错,想要调试看看问题出在哪里LeetCode平台就无能为力了。本博客讲述如何在IDE上调试代码。

    下面就树的相关算法,提供简单的IDE调试方法。

    LeetCode中的树节点是:

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */

    1. 则创建对应的java类为:

    package com.livy.tree.utils;
    
    public class TreeNode {
        int val;
        TreeNode left;
        TreeNode right;
        TreeNode(int x){
            val = x;
        }
    }

    2.按层构建树,下面的i<= (n-3)/2是对2*i+2<=n-1的变形

     1 package com.livy.tree.utils;
     2 
     3 public class Tree {
     4     public void createTreeAsLevel(TreeNode[] nodes){
     5         int n = nodes.length;
     6         int flag = 0;//按层构造时一个值为null,则它之后的孩子序号应该相应减2flag
     7         for(int i=0; 2*i+1 < n-1; i++){
     8             if(nodes[i] != null){
     9                 nodes[i].left = nodes[2*i+1-2*flag];
    10                 nodes[i].right = 2*i+2 == n ? null : nodes[2*i+2-2*flag];
    11             }else{
    12                 flag++;
    13             }
    14         }
    15         System.out.println();
    16     }
    17 }

    3. 对测试样例[5,3,6,2,4,null,7],构建树

    package com.livy.tree.utils;
    
    import java.util.Vector;
    
    public class TreeTest {
            public boolean findTarget(TreeNode root, int k) {
               //LeetCode的核心代码
            }
       
        public static void main(String[] args) {
            Integer[] data = {5,3,6,2,4,null,7};
            TreeNode[] nodes = new TreeNode[data.length];
            for(int i=0; i<data.length; i++){
                nodes[i] = data[i]==null ? null : new TreeNode(data[i].intValue());
            }
            Tree tree = new Tree();
            tree.createTreeAsLevel(nodes);
            TreeTest tt = new TreeTest();
            System.out.println(tt.findTarget(nodes[0], -1));
        }
    }

      tree.createTreeAsLevel(nodes);执行后产生对应的树

     

    如此,在类TreeTest 中编辑对应核心逻辑,在TreeTest 的main方法中创建对应的测试样例,就可以使用eclipse进行调试了。

    为了得到而努力

    2019-04-05

    转载给注明来处

  • 相关阅读:
    php与smarty结合应对表单get的一个小例子
    VC 使用mingw32编译ffmpeg静态库所需文件(二),mingwexsrc.cpp
    wzplayer for delphi
    wzplayer for delphi
    Delphi 调用VC生成的DLL
    VC 使用mingw32编译ffmpeg静态库所需文件(二),mingwexsrc.cpp
    VC使用mingw32编译ffmpeg静态库所需文件(一),ffmpegshim.c
    Delphi和C++数据类型对照表
    VC使用mingw32编译ffmpeg静态库所需文件(一),ffmpegshim.c
    Delphi 调用VC生成的DLL
  • 原文地址:https://www.cnblogs.com/malw/p/10658352.html
Copyright © 2020-2023  润新知