二叉树后续java代码
时间: 2023-03-29 21:01:07 浏览: 57
以下是二叉树后序遍历的 Java 代码:
```
public void postorderTraversal(TreeNode root) {
if (root == null) {
return;
}
postorderTraversal(root.left);
postorderTraversal(root.right);
System.out.print(root.val + " ");
}
```
这段代码可以遍历二叉树的每个节点,并按照后序遍历的顺序输出节点的值。
相关问题
二叉树迭代后续代码Java
以下是二叉树迭代后续遍历的 Java 代码:
```
public List<Integer> postorderTraversal(TreeNode root) {
LinkedList<Integer> res = new LinkedList<>();
if (root == null) {
return res;
}
Stack<TreeNode> stack = new Stack<>();
stack.push(root);
while (!stack.isEmpty()) {
TreeNode node = stack.pop();
res.addFirst(node.val);
if (node.left != null) {
stack.push(node.left);
}
if (node.right != null) {
stack.push(node.right);
}
}
return res;
}
```
二叉树 java代码
二叉树是一种树形数据结构,在每个节点最多只有两个子节点,分别称为左子节点和右子节点。以下是二叉树的Java代码示例:
```
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
public class BinaryTree {
private TreeNode root;
public BinaryTree(int[] nums) {
root = buildTree(nums, 0, nums.length - 1);
}
private TreeNode buildTree(int[] nums, int left, int right) {
if (left > right) return null;
int mid = left + (right - left) / 2;
TreeNode node = new TreeNode(nums[mid]);
node.left = buildTree(nums, left, mid - 1);
node.right = buildTree(nums, mid + 1, right);
return node;
}
public void preOrderTraversal() {
preOrder(root);
}
private void preOrder(TreeNode node) {
if (node == null) return;
System.out.print(node.val + " ");
preOrder(node.left);
preOrder(node.right);
}
public void inOrderTraversal() {
inOrder(root);
}
private void inOrder(TreeNode node) {
if (node == null) return;
inOrder(node.left);
System.out.print(node.val + " ");
inOrder(node.right);
}
public void postOrderTraversal() {
postOrder(root);
}
private void postOrder(TreeNode node) {
if (node == null) return;
postOrder(node.left);
postOrder(node.right);
System.out.print(node.val + " ");
}
}
```
以上代码实现了二叉树的基本操作,包括创建、前序遍历、中序遍历和后序遍历。在创建二叉树时,我们采用了二分法来保证树的平衡。在遍历时,我们采用了递归的方式来实现。