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

二叉树的前序遍历

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 广东

相关推荐

09-11 10:30
门头沟学院 C++
隔壁刷到的,请问几年前真的是这样吗
智能搬砖:21年已经有点难了,后面越来越难,主要是入行的卷王太多了,前几年培训机构搞宣传火了一波,像张雪峰有两年都在推计算机,进去的几百万卷王还没毕业呢,起码还要再卷五六年,到时候估计大厂就只要985了,211也得来跟我们卷外包了😂
我的秋招日记
点赞 评论 收藏
分享
牛客59349152...:没有让你做出个前后端页面,然后又不要你就知足了吧😂
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务