题解 | #二叉树的前序遍历#

二叉树的前序遍历

https://www.nowcoder.com/practice/5e2135f4d2b14eb8a5b06fab4c938635

import java.util.*;

/*
 * public class TreeNode {
 *   int val = 0;
 *   TreeNode left = null;
 *   TreeNode right = null;
 *   public TreeNode(int val) {
 *     this.val = val;
 *   }
 * }
 */

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param root TreeNode类 
     * @return int整型一维数组
     */
    public int recursivelyPreorder(TreeNode vroot, int[] temp, int i){
        temp[i++] = vroot.val;
        if(vroot.left!=null){
            i = recursivelyPreorder(vroot.left, temp, i);
        }
        if(vroot.right!=null){
            i = recursivelyPreorder(vroot.right, temp, i);
        }
        return i;
    }
    
    public int[] preorderTraversal (TreeNode root) {
        // write code here
        if(root==null){
            int[] treeList = new int[0];
            return treeList;
        }

        int i=0;
        int[] temp = new int[100];
        
        i = recursivelyPreorder(root, temp, i);
        System.out.print(i);
        int[] treeList = new int[i];
        for(int j=0;j<i;j++){
            treeList[j] = temp[j];
        }

        return treeList;
    }
}

摸索了好久,终于递归出来了

总结几个心得:

1,递归不一定需要返回值

2,递归需要把子问题实现,然后再确定递归停止条件

全部评论
除了使用临时数组,还可以使用List<integer> list = new ArrayList();可变大小的数组进行存放:list.add(vroot.val); list.get(i);</integer>
点赞 回复 分享
发布于 2023-09-13 12:43 广东

相关推荐

沟头学院:无关比赛不要写,这样会显着你主次不分,比赛不要撒谎,有哪些就写那些,创新创业建议删除。技能特长可以适当夸大。
点赞 评论 收藏
分享
01-17 12:35
吉首大学 Java
秋招之BrianGriffin:自己的工作自己做!😡
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务