LeetCode Invert Binary Tree

来源:互联网 发布:布谷布谷软件 编辑:程序博客网 时间:2024/06/14 02:46

题目:

Invert a binary tree.

     4   /   \  2     7 / \   / \1   3 6   9
to
     4   /   \  7     2 / \   / \9   6 3   1
题意:

将一棵二叉树反转,因为有两种方法,我考虑用非递归的方法来实现。也就是考虑用一个队列LinkedList,然后先将节点依次压入队列中,然后再依次将其pop出现将左子树节点和右字数节点互换。已达到反转的目的。

/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class Solution {    public static TreeNode invertTree(TreeNode root){LinkedList<TreeNode> nodes = new LinkedList<TreeNode>();if(root == null)return root;nodes.push(root);while(!nodes.isEmpty()){TreeNode curr = nodes.peek();nodes.poll();TreeNode pleft = curr.right;curr.right = curr.left;        curr.left = pleft;    if(curr.left != null)    nodes.push(curr.left);    if(curr.right != null)    nodes.push(curr.right);}return root;}}

此题与之前的二叉树的一些基本的操作雷同,都是用LinkedList来实现层次遍历,然后实现再实现相应的操作。

0 0
原创粉丝点击