leetcode 101. 对称二叉树 递归解法
生活随笔
收集整理的這篇文章主要介紹了
leetcode 101. 对称二叉树 递归解法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目
思路
一開始想要層序遍歷二叉樹,然后判斷每一層是否回文,寫著寫著發(fā)現(xiàn)這樣太麻煩了,看了評論區(qū)別人的遞歸解法,才寫出來的。
二叉樹的四種遍歷方法:
https://www.cnblogs.com/du001011/p/11229170.html
二叉樹的層序遍歷
public class TreeNode {public int data;public TreeNode leftChild;public TreeNode rightChild;public TreeNode(int data){this.data = data;} }public static void levelOrder(TreeNode root){LinkedList<TreeNode> queue = new LinkedList<>();queue.add(root);while(!queue.isEmpty()){root = queue.pop();System.out.print(root.data+" ");if(root.leftChild!=null) queue.add(root.leftChild);if(root.rightChild!=null) queue.add(root.rightChild);} }題解(遞歸解法)
// Definition for a binary tree node. class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) {val = x;}@Overridepublic String toString() {return "" + val;} }class Solution {// 測試用例// 1// / \// 2 2// / \ / \// 3 4 4 3public static void main(String[] args) {Solution solution = new Solution();TreeNode n1 = new TreeNode(1);TreeNode n21 = new TreeNode(2);TreeNode n22 = new TreeNode(2);TreeNode n31 = new TreeNode(3);TreeNode n32 = new TreeNode(4);TreeNode n33 = new TreeNode(4);TreeNode n34 = new TreeNode(3);n1.left = n21;n1.right = n22;n21.left = n31;n21.right = n32;n22.left = n33;n22.right = n34;boolean res = solution.isSymmetric(n1);System.out.println(res);}public boolean isSymmetric(TreeNode root) {if (root == null) {return true;} else {return is(root.left, root.right);}}private boolean is(TreeNode n1, TreeNode n2) {if (n1 == null || n2 == null) {return n1 == n2;} else {return n1.val == n2.val && is(n1.left, n2.right) && is(n1.right, n2.left);}} }總結(jié)
以上是生活随笔為你收集整理的leetcode 101. 对称二叉树 递归解法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 响应式web(三):服务当中的三种耦合,
- 下一篇: kubernetes入门到精通(一):内