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

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

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

LeetCode中的树节点是:算法

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

1. 则建立对应的java类为:eclipse

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],构建树spa

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进行调试了。code

为了获得而努力blog

2019-04-05ip

转载给注明来处

相关文章
相关标签/搜索