[Leetcode][第100题][JAVA][相同的树][二叉树][深度遍历][递归]
生活随笔
收集整理的這篇文章主要介紹了
[Leetcode][第100题][JAVA][相同的树][二叉树][深度遍历][递归]
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
【問題描述】[中等]
【解答思路】
深度遍歷/遞歸
- 終止條件與返回值:
當(dāng)兩棵樹的當(dāng)前節(jié)點(diǎn)都為 null 時(shí)返回 true
當(dāng)其中一個(gè)為 null 另一個(gè)不為 null 時(shí)返回 false
當(dāng)兩個(gè)都不為空但是值不相等時(shí),返回 false
- 執(zhí)行過程:當(dāng)滿足終止條件時(shí)進(jìn)行返回,不滿足時(shí)分別判斷左子樹和右子樹是否相同
時(shí)間復(fù)雜度:O(N) 空間復(fù)雜度:O(1)
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/ class Solution {public boolean isSameTree(TreeNode p, TreeNode q) {if(p == null && q == null) return true;if(p == null || q == null) return false;if(p.val != q.val) return false;return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);} }【總結(jié)】
1. 二叉樹算法框架
void traverse(TreeNode root) {// root 需要做什么?在這做。// 其他的不用 root 操心,拋給框架traverse(root.left);traverse(root.right); }2.常用遞歸處理 二叉樹
總結(jié)
以上是生活随笔為你收集整理的[Leetcode][第100题][JAVA][相同的树][二叉树][深度遍历][递归]的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Web前端开发技术实验与实践(第3版)储
- 下一篇: [Leetcode][第141、142题