C# 二叉树的前序遍历

144 二叉树的前序遍历

给你二叉树的根节点 root ,返回它节点值的 前序 遍历。

示例 1:

输入:root = [1,null,2,3]
输出:[1,2,3]
示例 2:

输入:root = []
输出:[]
示例 3:

输入:root = [1]
输出:[1]
示例 4:

输入:root = [1,2]
输出:[1,2]
示例 5:

输入:root = [1,null,2]
输出:[1,2]

提示:

树中节点数目在范围 [0, 100] 内
-100 <= Node.val <= 100

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/binary-tree-preorder-traversal

解决方案:

提供思路

前序(根左右)、中序(左根右)、后序(左右根)

1)迭代

2)递归

上代码:

// 迭代
public IList<int> PreorderTraversal(TreeNode root)
{
    
    
    var res = new List<int>();
    if (root == null)
        return res;
    var stack = new Stack<TreeNode>();
    stack.Push(root);
    while (stack.Count > 0)
    {
    
    
        var temp = stack.Pop();
        res.Add(temp.val);
        if (temp.right != null)
            stack.Push(temp.right);
        if (temp.left != null)
            stack.Push(temp.left);
    }
    return res;
}

// 递归
public IList<int> PreorderTraversal(TreeNode root)
{
    
    
    var res = new List<int>();
    if (root == null)
        return res;
    Helper(root, res);
    return res;
}
private void Helper(TreeNode root, List<int> res)
{
    
    
    if (root == null)
        return;
    res.Add(root.val);
    Helper(root.left, res);
    Helper(root.right, res);
}

以上是碰到的第一百四十四题,后续持续更新。感觉对你有帮助的小伙伴可以帮忙点个赞噢!

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Blossom_fall/article/details/131383761