首页 > 试题广场 >

二叉树的前序遍历

[编程题]二叉树的前序遍历
  • 热度指数:103081 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给你二叉树的根节点 root ,返回它节点值的 前序 遍历。

数据范围:二叉树的节点数量满足 ,二叉树节点的值满足 ,树的各节点的值各不相同

示例 1:


示例1

输入

{1,#,2,3}

输出

[1,2,3]

说明:本题目包含复杂数据结构TreeNode,点此查看相关信息
export function preorderTraversal(root: TreeNode): number[] {
    // write code here 非递归,利用栈
    let stack: TreeNode[] = root ? [root] : [];
    let nums = [];
    let temp: TreeNode = null;
    while (stack.length > 0) {
        temp = stack.pop();
        nums.push(temp.val);
        if (temp.right) stack.push(temp.right);
        if (temp.left) stack.push(temp.left);
    }
    return nums;
}

发表于 2023-02-17 17:54:50 回复(0)
export function preorderTraversal(root: TreeNode): number[] {
    // write code here
    
      function preorder(list:number[],root:TreeNode){
    if(root ==null)return null;
        arr.push(root.val);
    preorder(arr,root.left);
    preorder(arr,root.right);
    
    }
    
    
    let arr=[];
    preorder(arr,root)
    return arr;
  
}
发表于 2022-04-28 00:18:46 回复(0)
export function preorderTraversal(root: TreeNode): number[] {
  const res: number[] = [];
  function dfs(node: TreeNode) {
        if (node) {
            res.push(node.val);
            dfs(node.left);
            dfs(node.right);
        }
  }
  dfs(root);
  return res;
}

发表于 2022-04-05 22:31:23 回复(0)