脚本宝典收集整理的这篇文章主要介绍了[LintCode] Invert Binary Tree,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
Example
1 1
/ /
2 3 => 3 2
/
4 4
Solution
Recursion:
public class Solution {
public void invertBinaryTree(TreeNode root) {
if (root == null) return;
TreeNode temp = root.left;
root.left = root.right;
root.right = temp;
invertBinaryTree(root.left);
invertBinaryTree(root.right);
return;
}
}
Queue/linkedlist:
用queue的方法要熟练掌握。
public class Solution {
public void invertBinaryTree(TreeNode root) {
if (root == null) return;
Queue<TreeNode> queue = new LinkedList<TreeNode>();
queue.offer(root);
while (!queue.isEmpty()) {
TreeNode node = queue.poll();
TreeNode temp = node.left;
node.left = node.right;
node.right = temp;
if (node.left != null) {
queue.offer(node.left);
}
if (node.right != null) {
queue.offer(node.right);
}
}
return;
}
}
以上是脚本宝典为你收集整理的[LintCode] Invert Binary Tree全部内容,希望文章能够帮你解决[LintCode] Invert Binary Tree所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。