用遞迴的方法來做是一道很簡單的題,但是如果用普通的方法的話會比較繁雜,所以遇到問題還是多想想。
如上圖所示,由正整數1, 2, 3, ...組成了一棵無限大的二叉樹。從某乙個結點到根結
點(編號是1 的結點)都有一條唯一的路徑,比如從10 到根結點的路徑是(10, 5, 2, 1),
從4 到根結點的路徑是(4, 2, 1),從根結點1 到根結點的路徑上只包含乙個結點1,因此
路徑就是(1)。對於兩個結點x 和y,假設他們到根結點的路徑分別是(x1, x2, ... ,1)和(y1,
y2, ... ,1)(這裡顯然有x = x1,y = y1),那麼必然存在兩個正整數i 和j,使得從xi 和 yj
開始,有xi = yj ,xi + 1 = yj + 1,xi + 2 = yj + 2,... 現在的問題就是,給定x 和y,要求xi
(也就是yj)。
輸入資料
輸入只有一行,包括兩個正整數x 和y,這兩個正整數都不大於1000。
輸出要求
輸出只有乙個正整數xi。
輸入樣例
10 4
輸出樣例
2
#include int equal(int a, intb)}intmain()
二叉樹是否相同(遞迴版)
題目 分析 看到這個題目我的第一反應還是遞迴,沒辦法,最近愛上了遞迴,陷入了無限真香迴圈,無法自拔。我的思路是首先比較兩個二叉樹頂層節點,如果兩個二叉樹都為null,那麼不用繼續比較下去了,直接返回true。如果兩個二叉樹都不為null,那麼對比一下二者的節點值,如果值相同,則不用理它們,如果不同的...
相同的二叉樹
這篇主要介紹一下判斷兩棵二叉樹是否相同的方法 leetcode 100.相同的樹 解釋 通過二叉樹的遞迴前序遍歷方法實現的判斷二叉樹是否相同 bool issametree treenode p,treenode q return p val q val false issametree p lef...
二叉樹遞迴
我們來看一下二分搜尋樹的釋放,這就是乙個典型的遞迴問題 function destroy node 這個遞迴包括兩個部分,乙個是遞迴終止條件,乙個是遞迴的執行。我們知道遞迴是不斷地將當前函式壓入函式棧,如果沒有if node null return這個終止條件,當函式棧被壓滿之後就會發生棧溢位 棧的...