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);
}
以上是碰到的第一百四十四题,后续持续更新。感觉对你有帮助的小伙伴可以帮忙点个赞噢!