给定一棵二叉树,通过迭代的方式前序遍历并返回节点值列表
1. 编写一个表示二叉树节点的静态内部类
为了构建一棵二叉树,我们首先需要定义一个静态内部类来表示二叉树的节点。该类包含一个整型变量用于存储节点的值,并拥有左右子节点的引用。
```java
static class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int val) {
val;
}
}
```
2. 通过迭代的方式实现前序遍历
为了实现通过迭代的方式前序遍历一棵二叉树,我们可以借助栈来存储待遍历的节点。具体思路如下:
1. 将当前节点的值添加到返回列表中。
2. 如果当前节点有右子节点,则将右子节点入栈。
3. 如果当前节点有左子节点,则将左子节点替换为当前节点,并继续遍历。
4. 如果当前节点既没有左子节点也没有右子节点,并且栈不为空,则弹出栈顶元素作为当前节点继续遍历。
以下是通过迭代的方式前序遍历二叉树的示例代码:
```java
public List
List
Stack
if (root ! null) {
stack.push(root);
}
while (!()) {
TreeNode current stack.pop();
();
if (current.right ! null) {
stack.push(current.right);
}
if (current.left ! null) {
stack.push(current.left);
}
}
return result;
}
```
3. 通过递归的方式实现前序遍历
除了使用迭代的方式,我们也可以使用递归的方式来实现前序遍历一棵二叉树。递归的思路比较简单,即先访问当前节点的值,然后递归地遍历左子树和右子树。
以下是通过递归的方式前序遍历二叉树的示例代码:
```java
public List
List
preorderTraversalHelper(root, result);
return result;
}
private void preorderTraversalHelper(TreeNode node, List
if (node null) {
return;
}
();
preorderTraversalHelper(node.left, result);
preorderTraversalHelper(node.right, result);
}
```
4. 编写本地测试方法
在完成算法的编写后,我们需要编写本地测试方法来验证算法的正确性。以下是一个简单的示例:
```java
public static void main(String[] args) {
Solution solution new Solution();
// 构建二叉树
TreeNode root new TreeNode(1);
root.left new TreeNode(2);
root.right new TreeNode(3);
root.left.left new TreeNode(4);
root.left.right new TreeNode(5);
// 通过迭代的方式前序遍历二叉树
List
// 输出结果
(result);
}
```
5. 运行本地测试方法
运行本地测试方法,并观察控制台输出是否符合预期。如果输出结果与预期一致,则说明本地测试通过。
6. 提交算法至平台进行测试
经过本地测试确认算法的正确性后,可以将算法提交至相应的平台进行进一步的测试。确保算法能够通过平台的测试,以保证其在实际应用中的可靠性和稳定性。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。